{"components":{"schemas":{},"securitySchemes":{"RevCentAPIKey":{"type":"apiKey","description":"Authenticate using the required x-api-key header. Example = x-api-key: your_api_key","name":"x-api-key","in":"header"}}},"paths":{"/ai_assistants":{"get":{"summary":"Get AI Assistants","description":"Returns a paginated list of AI Assistants, including their settings and workflows.","operationId":"GetAIAssistants","x-api-permission-description":"Allows the retrieval of AI Assistants.","x-api-permission":"ai_assistant:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/GetAIAssistants.md","tags":["AI Assistants"],"parameters":[{"description":"The maximum number of items to return on a page, from 1 to 25. This parameter is required.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve. Use 1 for the first page; 0 also returns the first page. The maximum page number is 20.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Assistant list response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of AI Assistants returned in this page’s results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The returned page number.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The AI Assistant name.","examples":["My AI Assistant"]},"description":{"type":"string","description":"The AI Assistant description.","examples":["This is my AI Assistant."]},"enabled":{"type":"boolean","description":"Whether the AI Assistant is enabled."},"settings":{"type":"object","description":"The AI Assistant’s configured instructions, usage limits and trigger settings.","additionalProperties":false,"properties":{"assistant_instructions":{"type":"string","description":"The assistant’s saved base instructions, used across its threads. Individual workflow-step instructions appear in `flow[].node_settings.step_message`.","examples":["You are a helpful assistant for an ecommerce store."]},"assistant_limits":{"type":"object","description":"Configured usage limits for the AI Assistant and its threads.","additionalProperties":false,"properties":{"thread_max_tokens":{"type":"integer","description":"The maximum tokens a thread may consume before it stops automatically. A value of 0 means no limit; the default is 0.","examples":[250000]},"token_max_per_day":{"type":"integer","description":"The maximum tokens the AI Assistant may consume in a 24-hour period. A value of 0 means no limit; the default is 0.","examples":[10]}}},"trigger_settings":{"type":"object","description":"The configuration that determines when the AI Assistant runs.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"How the AI Assistant is configured to start: account_event for a matching account event; on_demand for a request through the API, web app or another AI Assistant’s tool call; schedule for a five-part cron schedule. An empty string means no trigger is configured.","enum":["account_event","schedule","on_demand",""],"examples":["account_event","schedule","on_demand"]},"account_event":{"additionalProperties":false,"type":"object","description":"Event selection, filters, delay and run limits for the account_event trigger.","properties":{"notation":{"type":"string","description":"The account-event notation that triggers the assistant. See https://kb.revcent.com/en/revcent-account/events for notation formats and event data. An empty string means no event notation is configured.","enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened",""],"examples":["sale.created.success.paid"]},"filters":{"type":"object","additionalProperties":false,"description":"The assistant’s configured account-event filters. Supported fields and values for creating or updating filters depend on the event notation; see the POST schema.","properties":{"campaign_filter":{"type":"array","description":"Configured campaign filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"description":"A 20-character campaign ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"currency_filter":{"type":"array","description":"Configured currency filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A three-letter ISO 4217 currency code.","examples":["USD"]}},"customer_group_filter":{"type":"array","description":"Configured customer group filter values. Supported for customer, note account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character customer group ID.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}},"fulfillment_account_filter":{"type":"array","description":"Configured fulfillment account filter values. Supported for product, shipping account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character fulfillment account ID.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"gateway_filter":{"type":"array","description":"Configured gateway filter values. Supported for chargeback, pending_refund, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"metadata_filter":{"type":"array","description":"Configured metadata filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name that must be present on the event item.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value that must match. Use 'METADATA_NAME_EXISTS' to require only that the metadata name exists, regardless of its value.","examples":["Filter metadata value","METADATA_NAME_EXISTS"]}}},"maxItems":50},"method_filter":{"type":"array","description":"Configured method filter values. Supported for chargeback, fraud_detection, salvage_transaction, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured method filter value.","examples":["sale_create"]}},"payment_profile_filter":{"type":"array","description":"Configured payment profile filter values. Supported for salvage_transaction, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character payment profile ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"payment_type_filter":{"type":"array","description":"Configured payment type filter values. Supported for discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured payment type filter value.","examples":["credit_card"]}},"product_filter":{"type":"array","description":"Configured product filter values. Supported for customer, note, product_sale, subscription, subscription_renewal, trial account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"result_filter":{"type":"array","description":"Configured result filter values. Supported for transaction account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured result filter value.","examples":["approved"]}},"shipping_provider_filter":{"type":"array","description":"Configured shipping provider filter values. Supported for shipping account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured shipping provider filter value.","examples":["ups"]}},"shipping_status_filter":{"type":"array","description":"Configured shipping status filter values. Supported for shipping account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured shipping status filter value.","examples":["shipped"]}},"shop_filter":{"type":"array","description":"Configured shop filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"status_filter":{"type":"array","description":"Configured status filter values. Supported for ai_memo, chargeback, check_direct, customer, fraud_detection, note, offline_payment, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"type":"string","description":"A configured status filter value.","examples":["pending_payment"]}},"subscription_profile_filter":{"type":"array","description":"Configured subscription profile filter values. Supported for product, subscription, subscription_renewal account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character subscription profile ID.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"ai_assistant_filter":{"type":"array","items":{"type":"string","description":"A configured AI Assistant filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured AI Assistant filter values. Supported for ai_memo account events. Omitted when not configured; a configured array may be empty."},"paypal_account_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal account filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal account filter values. Supported for paypal_dispute, paypal_transaction, pending_refund account events. Omitted when not configured; a configured array may be empty."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal dispute status filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal dispute status filter values. Supported for paypal_dispute account events. Omitted when not configured; a configured array may be empty."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal dispute reason filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal dispute reason filter values. Supported for paypal_dispute account events. Omitted when not configured; a configured array may be empty."},"product_type_filter":{"type":"array","items":{"type":"string","description":"A configured product type filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product type filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."},"product_group_filter":{"type":"array","items":{"type":"string","description":"A configured product group filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product group filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."},"project_filter":{"type":"array","items":{"type":"string","description":"A configured project filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured project filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."}}},"filter_function":{"type":"object","additionalProperties":false,"description":"The Function configured to evaluate account-event data and return pass or fail to allow or prevent an assistant run. The Function must use event_source api_direct. See https://kb.revcent.com/en/tools/ai/assistants#filter-function for setup.","properties":{"id":{"description":"A 20-character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The filter function name.","examples":["My AI Assistant Filter Function"]}}},"delay":{"type":"object","description":"The configured delay between an account event and the assistant run. The default delay is one minute.","additionalProperties":false,"properties":{"time_value":{"type":"integer","description":"The delay amount, expressed in time_unit.","examples":[1]},"time_unit":{"type":"string","description":"The unit used for time_value.","enum":["minutes","hours","days"],"examples":["minutes"]}}},"limits":{"additionalProperties":false,"type":"object","description":"Configured limits on how often account events can start this assistant for the same item.","properties":{"max_run_count":{"type":"integer","description":"The maximum number of runs for the same item. A value of 1 limits the assistant to one run per item.","examples":[1]},"min_time_value":{"type":"integer","description":"The minimum interval between runs for the same item, expressed in min_time_unit. Applies when max_run_count is greater than 1.","examples":[1]},"min_time_unit":{"type":"string","description":"The unit for the interval between runs for the same item. Applies when max_run_count is greater than 1.","enum":["hours","days"],"examples":["hours"]}}}}},"schedule":{"additionalProperties":false,"type":"object","description":"The cron schedule and timezone used when the trigger is schedule.","properties":{"cron_expression":{"type":"string","description":"The five-part cron expression that defines when the assistant runs.","examples":["0 9 * * *"]},"cron_timezone":{"type":"string","description":"The IANA timezone used to interpret the cron expression. Defaults to UTC when not specified.","examples":["America/New_York"]}}}}}}},"flow":{"type":"array","description":"The assistant’s workflow nodes and their connections. Each node’s type determines its purpose and settings; input and output connections define the workflow sequence.","items":{"type":"object","additionalProperties":false,"description":"An AI Assistant workflow node. The node type determines which ports and settings apply.","properties":{"id":{"type":"string","description":"The node’s unique ID within this workflow. Connections use this ID to identify the node.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","description":"The type of node in the flow.","enum":["start_thread","action_step","action_branch","action_time_delay","action_end_thread"],"examples":["start_thread","action_step","action_branch","action_time_delay","action_end_thread"]},"inputs":{"type":"object","additionalProperties":false,"description":"Input ports. A start_thread node returns an empty object. Other node types may have input_1; a present port may have an empty connections array.","properties":{"input_1":{"type":"object","additionalProperties":false,"description":"A workflow port and its connections.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"description":"The output port on the upstream node connected to this input.","examples":["output_1","output_2","output_3","output_4"]}}}}}}}},"outputs":{"type":"object","additionalProperties":false,"description":"Configured output ports. start_thread, action_step and action_time_delay use output_1; action_branch can use output_1 through output_4. Omitted when no output ports are configured, and always omitted for action_end_thread.","properties":{"output_1":{"type":"object","additionalProperties":false,"description":"The output port for start_thread, action_step or action_time_delay, or the first branch output for action_branch.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_2":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_2 is the output for its matching branch condition.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_3":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_3 is the output for its matching branch condition.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_4":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_4 is the fallback output when no branch condition matches.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}}}},"position":{"type":"object","description":"The node’s position in the visual workflow editor, in pixels. Position does not determine execution order.","additionalProperties":false,"properties":{"x_axis":{"type":"integer","description":"Horizontal position in pixels.","examples":[100]},"y_axis":{"type":"integer","description":"Vertical position in pixels.","examples":[100]}}},"node_settings":{"type":"object","additionalProperties":false,"description":"Settings for this node: step_message for action_step; output_1_message through output_3_message for action_branch; time_unit and time_value for action_time_delay. Branch conditions are evaluated in order, with output_4 used if none match. Omitted for start_thread and action_end_thread, or when settings are unavailable. Message strings may be empty.","properties":{"step_message":{"type":"string","description":"The message sent to the AI for an action_step node. May be empty.","examples":["What is the status of the order?"]},"output_1_message":{"type":"string","description":"The condition the AI evaluates for output_1 of an action_branch node. May be empty.","examples":["The sale is paid."]},"output_2_message":{"type":"string","description":"Applies to action_branch. The condition for output_2, evaluated after earlier branch conditions. An empty or omitted message leaves this condition unused.","examples":["The sale is pending payment."]},"output_3_message":{"type":"string","description":"Applies to action_branch. The condition for output_3, evaluated after earlier branch conditions. An empty or omitted message leaves this condition unused.","examples":["The sale is cancelled."]},"time_unit":{"type":"string","description":"Applies to action_time_delay. The unit of time for the delay before continuing through output_1.","enum":["minutes","hours","days"],"examples":["minutes"]},"time_value":{"type":"string","description":"Applies to action_time_delay. The delay as a positive whole-number string. Leading zeros may be present.","examples":["10"]}}}}}},"third_party_integration":{"title":"Third Party Integration","type":["object","null"],"additionalProperties":false,"description":"The configured AI provider integration, or null when none is available.","properties":{"id":{"description":"The 20-character public ID of the AI provider integration in your account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"The name given to the AI provider integration in your account.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider associated with this integration.","additionalProperties":false,"properties":{"id":{"description":"The AI provider’s 20-character public ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The AI Assistants returned for the requested page, including settings and workflow nodes."},"total_count":{"description":"The total number of assistants matching the request.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total number of result pages for the requested limit.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An AI Assistant","description":"Create a fully configured AI Assistant. Name, instructions, trigger settings, an AI integration and a valid flow are required, including when enabled is false. Configured disconnected flow nodes are allowed; incomplete node settings are not.","operationId":"CreateAIAssistant","x-api-permission-description":"Allows the creation of a RevCent AI Assistant.","x-api-permission":"ai_assistant:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/CreateAIAssistant.md","tags":["AI Assistants"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Assistant name, up to 100 characters. Must contain non-whitespace text.","minLength":1,"maxLength":100,"examples":["Example"]},"description":{"type":"string","description":"The AI Assistant description.","maxLength":2000,"examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Assistant is enabled."},"settings":{"type":"object","description":"The settings for the AI Assistant.","additionalProperties":false,"required":["assistant_instructions","trigger_settings"],"properties":{"assistant_instructions":{"type":"string","description":"The instructions for the AI Assistant. These are the base instructions that will be provided to the AI model with every AI Thread associated with the AI Assistant. Useful for setting the overall behavior of the assistant and not for actual actions to perform. Do not include instructions for specific actions to perform in the assistant instructions. Must contain at least one non-whitespace character.","minLength":1,"maxLength":100000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"assistant_limits":{"type":"object","description":"The limits for the AI Assistant. These limits will apply to all AI Threads associated with the AI Assistant.","additionalProperties":false,"properties":{"thread_max_tokens":{"type":"integer","description":"The maximum number of tokens that an AI Thread associated with the AI Assistant can consume before the thread is automatically stopped. Useful for preventing excessively long threads that consume a large number of tokens. 0 means no limit. Default is 0.","minimum":0,"maximum":1000000000,"examples":[0]},"token_max_per_day":{"type":"integer","description":"The maximum number of tokens that an AI Assistant can consume in a 24 hour period. Useful for preventing excessive usage. 0 means no limit. Default is 0.","minimum":0,"maximum":1000000000,"examples":[0]}}},"trigger_settings":{"type":"object","description":"The trigger settings for the AI Assistant.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The event that triggers the AI Assistant. An AI Assistant can be triggered by an account event, on demand via API, or on a schedule determined by a valid 5 part cron expression.\nOptions:\n'account_event': The AI Assistant is triggered when a specific event occurs within your RevCent account.\n'on_demand': The AI Assistant is triggered either via API, Web App or as a System Tool within another AI Assistants' thread.\n'schedule': The AI Assistant is triggered on a fixed schedule.","enum":["account_event","schedule","on_demand"],"examples":["account_event"]},"account_event":{"additionalProperties":false,"type":"object","description":"If the trigger is account_event there are additional settings that can be configured including filtering specific events from using the assistant.","properties":{"notation":{"type":"string","description":"The notation for the account event trigger. Read more at https://kb.revcent.com/en/revcent-account/events to understand notation formatting and their associated event data.","examples":["sale.created.success.paid"],"enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened"]},"filters":{"type":"object","additionalProperties":false,"description":"Optional filters for the selected account-event notation. The event type is the segment before the first dot in notation. Use only the fields and values documented for that event type; the API enforces applicability. References must belong to your account. Empty arrays apply no restriction.","properties":{"ai_assistant_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: ai_memo."},"status_filter":{"description":"Filter by status. Supported values by event type: ai_memo: unread, read; chargeback: representment_none, representment_pending, representment_won, representment_lost; check_direct: pending_receipt, received, fraud, chargeback; customer: enabled, disabled, blocked, fraud, chargeback; fraud_detection: created, false_positive; note: enabled, disabled, blocked, fraud, chargeback; offline_payment: complete, refunded, fraud, chargeback; pending_refund: complete, processing; product: enabled, disabled; product_sale: nocapture, captured, settled, complete, void, refund, fraud, chargeback; sale: nocapture, captured, partialcapture, settled, refund, void, cancelled, fraud_alert, fraud, chargeback, pending_payment; salvage_transaction: salvaged, not_salvaged; shipping: nocapture, captured, settled, refund, void; subscription: active, trial, overdue, occurrence_limit, suspended, expired, replaced, cancelled, fraud, chargeback; subscription_renewal: captured, settled, refund, void, overdue, fraud, chargeback, error; tax: nocapture, captured, settled, refund, void, fraud, chargeback; transaction: captured, settled, refund, void, complete; trial: active, expired, expiredpaymentpartialdecline, expiredpaymentfulldecline, expiredpaymenterror, inactive, cancelled, fraud, chargeback.","type":"array","items":{"type":"string","enum":["unread","read","representment_none","representment_pending","representment_won","representment_lost","pending_receipt","received","fraud","chargeback","enabled","disabled","blocked","created","false_positive","complete","refunded","processing","nocapture","captured","settled","void","refund","partialcapture","cancelled","fraud_alert","pending_payment","salvaged","not_salvaged","active","trial","overdue","occurrence_limit","suspended","expired","replaced","error","expiredpaymentpartialdecline","expiredpaymentfulldecline","expiredpaymenterror","inactive"],"examples":["unread"]}},"campaign_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial."},"currency_filter":{"type":"array","items":{"type":"string","description":"Three-letter currency code. Letter case is ignored.","examples":["USD"]},"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax."},"gateway_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, pending_refund, transaction."},"method_filter":{"description":"Filter by method. Supported values by event type: chargeback: sale_create, subscription_renew, trial_expire, salvage_transaction_process; fraud_detection: sale_create, subscription_renew, trial_expire, salvage_transaction_process; salvage_transaction: sale_partial, trial, subscription_renewal; transaction: sale_create, subscription_renew, trial_expire, pending_refund_process, salvage_transaction_process.","type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","sale_partial","trial","subscription_renewal","pending_refund_process"],"examples":["sale_create"]}},"shop_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction."},"metadata_filter":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name to match. Must be nonblank and no longer than 100 UTF-16 code units in the submitted text, including surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two. Surrounding whitespace is trimmed for matching.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value to match. Must be nonblank and no longer than 255 UTF-16 code units in the submitted text, including surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two. Surrounding whitespace is trimmed for matching.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial. All distinct metadata names must match; multiple values for the same name are alternatives. Use METADATA_NAME_EXISTS to require the name regardless of value.","maxItems":50},"customer_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: customer, note."},"product_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: customer, note, product_sale, subscription, subscription_renewal, trial."},"payment_type_filter":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","check_direct","offline"],"examples":["credit_card"]},"description":"Supported event types: discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial."},"paypal_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: paypal_dispute, paypal_transaction, pending_refund."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","enum":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"],"examples":["OPEN"]},"description":"Supported event types: paypal_dispute."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","enum":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"],"examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]},"description":"Supported event types: paypal_dispute."},"product_type_filter":{"type":"array","items":{"type":"string","enum":["basic","subscription","subscription_only","trial","trial_only"],"examples":["basic"]},"description":"Supported event types: product."},"product_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product."},"fulfillment_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product, shipping."},"subscription_profile_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product, subscription, subscription_renewal."},"project_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product."},"payment_profile_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: salvage_transaction, transaction."},"shipping_status_filter":{"type":"array","items":{"type":"string","enum":["shipped","notshipped","merged","delivered","error"],"examples":["shipped"]},"description":"Supported event types: shipping."},"shipping_provider_filter":{"type":"array","items":{"type":"string","enum":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"],"examples":["apc"]},"description":"Supported event types: shipping."},"result_filter":{"type":"array","items":{"type":"string","enum":["approved","declined","error","held"],"examples":["approved"]},"description":"Supported event types: transaction."}}},"filter_function":{"type":"string","description":"20 character RevCent ID of the filter function. A filter function allows you to further refine whether or not the AI Assistant is triggered based on an account event details. You can use a filter function to parse the specific account event details and determine whether the AI Assistant should be triggered. A filter function must respond with a string value of either 'pass' or 'fail'. The filter function must be created with a event_source of 'api_direct' in order to be accessible. Read more about using a filter function <a href=\"https://kb.revcent.com/en/tools/ai/assistants#filter-function\" target=\"_blank\">here</a>.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"delay":{"type":"object","description":"Delay after the account event before starting the assistant. Default: 1 minute. Maximum: 7 days (168 hours or 10080 minutes). This is separate from a flow Time Delay node.","additionalProperties":false,"properties":{"time_value":{"type":"integer","description":"The value of the time delay.","minimum":1,"maximum":10080,"examples":[1]},"time_unit":{"type":"string","description":"The unit of time for the delay.","enum":["minutes","hours","days"],"examples":["minutes"]}},"required":["time_unit","time_value"],"allOf":[{"if":{"properties":{"time_unit":{"const":"days"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":7}}}},{"if":{"properties":{"time_unit":{"const":"hours"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":168}}}},{"if":{"properties":{"time_unit":{"const":"minutes"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":10080}}}}]},"limits":{"additionalProperties":false,"type":"object","description":"Limits for repeated runs on the same item. Defaults: max_run_count 1, min_time_value 30, min_time_unit days. When max_run_count is 1, the minimum interval does not affect eligibility. For larger counts, supply a positive interval.","properties":{"max_run_count":{"type":"integer","description":"The maximum number of runs per item. Highly recommended set to 1 to prevent multiple runs for the same item within same events.","minimum":1,"maximum":100000,"examples":[1]},"min_time_value":{"type":"integer","description":"If max_run_count is greater than 1, the value for the time unit that must transpire between runs for the same item.","minimum":1,"maximum":100000,"examples":[1]},"min_time_unit":{"type":"string","description":"If max_run_count is greater than 1, the unit of time that must transpire between runs for the same item.","enum":["hours","days"],"examples":["hours"]}},"required":["max_run_count"],"allOf":[{"if":{"properties":{"max_run_count":{"minimum":2}},"required":["max_run_count"]},"then":{"required":["min_time_value","min_time_unit"]}}]}},"required":["notation"]},"schedule":{"additionalProperties":false,"type":"object","description":"If the trigger is schedule, the cron expression that determines when the AI Assistant will be triggered. The cron expression must be a valid 5 part cron expression.","properties":{"cron_expression":{"type":"string","description":"A valid five-part cron expression with at least one hour between scheduled runs. Must contain at least one non-whitespace character.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"cron_timezone":{"type":"string","description":"IANA timezone for the schedule. Defaults to UTC on creation. Omission during an edit keeps the current timezone. Must contain at least one non-whitespace character.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["cron_expression"]}},"required":["trigger"],"allOf":[{"if":{"properties":{"trigger":{"const":"account_event"}},"required":["trigger"]},"then":{"required":["account_event"]}},{"if":{"properties":{"trigger":{"const":"schedule"}},"required":["trigger"]},"then":{"required":["schedule"]}}]}}},"flow":{"type":"array","minItems":1,"maxItems":250,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"start_thread","examples":["start_thread"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":0,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","additionalProperties":false,"properties":{}}},"required":["id","type"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_step","examples":["action_step"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_step'.","additionalProperties":false,"properties":{"step_message":{"type":"string","description":"Applies to an 'action_step' node. The message that will be sent to the AI. Maximum 20,000 characters (some characters, including many emoji, count as two). Must contain at least one non-whitespace character.","maxLength":20000,"minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["step_message"]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_branch","examples":["action_branch"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_2":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_3":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_4":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Branch outputs 1–3 correspond to their nonempty condition messages in numeric order. A model result of none follows output_4. At most one target per output; no fan-out. A selected unconnected output has no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_branch'. This is treated as an if > else if > else statement. The messages are sent to the AI and the AI determines which branch condition is met and thus which output to go down. If no conditions are met, output_4 is used.","additionalProperties":false,"properties":{"output_1_message":{"type":"string","description":"Applies to an 'action_branch' node. The message that will be sent to the AI to determine if the branch condition is met for output 1. Maximum 20,000 characters (some characters, including many emoji, count as two). Must contain at least one non-whitespace character.","maxLength":20000,"minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"output_2_message":{"type":"string","description":"Optional condition for output_2, evaluated after output_1 by the model. Omission or an empty string skips this condition; it does not suppress output_3. Maximum 20,000 characters (some characters, including many emoji, count as two).","maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"output_3_message":{"type":"string","description":"Optional condition for output_3, evaluated after the other supplied conditions by the model. Omission or an empty string skips this condition. Maximum 20,000 characters (some characters, including many emoji, count as two).","maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["output_1_message"]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_time_delay","examples":["action_time_delay"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_time_delay'. This node causes a delay in the flow for a specified amount of time before proceeding to other nodes via output_1.","additionalProperties":false,"properties":{"time_unit":{"type":"string","description":"The unit of time for the time delay.","enum":["minutes","hours","days"],"examples":["minutes"]},"time_value":{"type":"string","description":"Delay as a positive integer string: 1–3 days, 1–72 hours or 1–4320 minutes. Leading zeros are allowed; fractions, signs, whitespace and scientific notation are not accepted.","minLength":1,"maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["time_unit","time_value"],"allOf":[{"if":{"properties":{"time_unit":{"const":"days"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For days, supply an integer string from 1 through 3, inclusive. Leading zeros are allowed."}}}},{"if":{"properties":{"time_unit":{"const":"hours"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For hours, supply an integer string from 1 through 72, inclusive. Leading zeros are allowed."}}}},{"if":{"properties":{"time_unit":{"const":"minutes"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For minutes, supply an integer string from 1 through 4320, inclusive. Leading zeros are allowed."}}}}]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_end_thread","examples":["action_end_thread"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{}},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","additionalProperties":false,"properties":{}}},"required":["id","type"]}],"description":"Node-specific settings and ports are determined by type. Start/end settings may be omitted or empty; step, branch and delay settings are required. Unconnected nodes are allowed."},"description":"Complete replacement assistant flow, including disconnected editor drafts. Exactly one start_thread and unique node IDs are required. Every declared edge must point to an existing node and be reciprocal at both ports. At most one incoming connection per node and one target per output; start has no incoming edge and end has no outputs. Self connections and directly consecutive time delay nodes are rejected, including in drafts. All connections must satisfy these rules for the flow to be accepted. Only the selected path executes; disconnected nodes are preserved. Start, step and delay continue through output_1. Branch conditions are model-directed, in output_1/output_2/output_3 order for nonempty messages; a none result selects output_4. An unconnected selected port has no continuation. End terminates the thread. Each node can run at most once per thread; cycles do not repeat actions. Node messages are limited to 20,000 characters; some characters, including many emoji, count as two toward this limit."},"third_party_integration":{"type":"string","description":"The 20 character string of an existing user third party integration in RevCent that will power the AI Assistant. The existing user third party integration should have a site integration of type 'ai'. Supported third parties are OpenAI, Google Gemini, xAI and OpenRouter.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","settings","third_party_integration","flow"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_assistant_id":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Assistant-flow node settings could not be accepted.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0959","E0958"],"examples":["E0959"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected assistant-flow node.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies the invalid node setting.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_assistants/{ai_assistant_id}":{"get":{"summary":"Get An AI Assistant","description":"Retrieve an AI Assistant’s settings, workflow and AI provider integration.","operationId":"GetAIAssistant","x-api-permission-description":"Allows the retrieval of AI Assistants.","x-api-permission":"ai_assistant:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/GetAIAssistant.md","tags":["AI Assistants"],"parameters":[{"in":"path","name":"ai_assistant_id","description":"The 20-character public ID of the AI Assistant to retrieve.","required":true,"schema":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Assistant retrieval response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The AI Assistant name.","examples":["My AI Assistant"]},"description":{"type":"string","description":"The AI Assistant description.","examples":["This is my AI Assistant."]},"enabled":{"type":"boolean","description":"Whether the AI Assistant is enabled."},"settings":{"type":"object","description":"The AI Assistant’s configured instructions, usage limits and trigger settings.","additionalProperties":false,"properties":{"assistant_instructions":{"type":"string","description":"The assistant’s saved base instructions, used across its threads. Individual workflow-step instructions appear in `flow[].node_settings.step_message`.","examples":["You are a helpful assistant for an ecommerce store."]},"assistant_limits":{"type":"object","description":"Configured usage limits for the AI Assistant and its threads.","additionalProperties":false,"properties":{"thread_max_tokens":{"type":"integer","description":"The maximum tokens a thread may consume before it stops automatically. A value of 0 means no limit; the default is 0.","examples":[250000]},"token_max_per_day":{"type":"integer","description":"The maximum tokens the AI Assistant may consume in a 24-hour period. A value of 0 means no limit; the default is 0.","examples":[10]}}},"trigger_settings":{"type":"object","description":"The configuration that determines when the AI Assistant runs.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"How the AI Assistant is configured to start: account_event for a matching account event; on_demand for a request through the API, web app or another AI Assistant’s tool call; schedule for a five-part cron schedule. An empty string means no trigger is configured.","enum":["account_event","schedule","on_demand",""],"examples":["account_event","schedule","on_demand"]},"account_event":{"additionalProperties":false,"type":"object","description":"Event selection, filters, delay and run limits for the account_event trigger.","properties":{"notation":{"type":"string","description":"The account-event notation that triggers the assistant. See https://kb.revcent.com/en/revcent-account/events for notation formats and event data. An empty string means no event notation is configured.","enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened",""],"examples":["sale.created.success.paid"]},"filters":{"type":"object","additionalProperties":false,"description":"The assistant’s configured account-event filters. Supported fields and values for creating or updating filters depend on the event notation; see the POST schema.","properties":{"campaign_filter":{"type":"array","description":"Configured campaign filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"description":"A 20-character campaign ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"currency_filter":{"type":"array","description":"Configured currency filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A three-letter ISO 4217 currency code.","examples":["USD"]}},"customer_group_filter":{"type":"array","description":"Configured customer group filter values. Supported for customer, note account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character customer group ID.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}},"fulfillment_account_filter":{"type":"array","description":"Configured fulfillment account filter values. Supported for product, shipping account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character fulfillment account ID.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"gateway_filter":{"type":"array","description":"Configured gateway filter values. Supported for chargeback, pending_refund, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"metadata_filter":{"type":"array","description":"Configured metadata filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name that must be present on the event item.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value that must match. Use 'METADATA_NAME_EXISTS' to require only that the metadata name exists, regardless of its value.","examples":["Filter metadata value","METADATA_NAME_EXISTS"]}}},"maxItems":50},"method_filter":{"type":"array","description":"Configured method filter values. Supported for chargeback, fraud_detection, salvage_transaction, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured method filter value.","examples":["sale_create"]}},"payment_profile_filter":{"type":"array","description":"Configured payment profile filter values. Supported for salvage_transaction, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character payment profile ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"payment_type_filter":{"type":"array","description":"Configured payment type filter values. Supported for discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured payment type filter value.","examples":["credit_card"]}},"product_filter":{"type":"array","description":"Configured product filter values. Supported for customer, note, product_sale, subscription, subscription_renewal, trial account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"result_filter":{"type":"array","description":"Configured result filter values. Supported for transaction account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured result filter value.","examples":["approved"]}},"shipping_provider_filter":{"type":"array","description":"Configured shipping provider filter values. Supported for shipping account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured shipping provider filter value.","examples":["ups"]}},"shipping_status_filter":{"type":"array","description":"Configured shipping status filter values. Supported for shipping account events. Omitted when not configured; a configured array may be empty.","items":{"type":"string","description":"A configured shipping status filter value.","examples":["shipped"]}},"shop_filter":{"type":"array","description":"Configured shop filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"status_filter":{"type":"array","description":"Configured status filter values. Supported for ai_memo, chargeback, check_direct, customer, fraud_detection, note, offline_payment, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Returns an empty array when unset.","items":{"type":"string","description":"A configured status filter value.","examples":["pending_payment"]}},"subscription_profile_filter":{"type":"array","description":"Configured subscription profile filter values. Supported for product, subscription, subscription_renewal account events. Omitted when not configured; a configured array may be empty.","items":{"description":"A 20-character subscription profile ID.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"ai_assistant_filter":{"type":"array","items":{"type":"string","description":"A configured AI Assistant filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured AI Assistant filter values. Supported for ai_memo account events. Omitted when not configured; a configured array may be empty."},"paypal_account_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal account filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal account filter values. Supported for paypal_dispute, paypal_transaction, pending_refund account events. Omitted when not configured; a configured array may be empty."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal dispute status filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal dispute status filter values. Supported for paypal_dispute account events. Omitted when not configured; a configured array may be empty."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","description":"A configured PayPal dispute reason filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured PayPal dispute reason filter values. Supported for paypal_dispute account events. Omitted when not configured; a configured array may be empty."},"product_type_filter":{"type":"array","items":{"type":"string","description":"A configured product type filter value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product type filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."},"product_group_filter":{"type":"array","items":{"type":"string","description":"A configured product group filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product group filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."},"project_filter":{"type":"array","items":{"type":"string","description":"A configured project filter value.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured project filter values. Supported for product account events. Omitted when not configured; a configured array may be empty."}}},"filter_function":{"type":"object","additionalProperties":false,"description":"The Function configured to evaluate account-event data and return pass or fail to allow or prevent an assistant run. The Function must use event_source api_direct. See https://kb.revcent.com/en/tools/ai/assistants#filter-function for setup.","properties":{"id":{"description":"A 20-character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The filter function name.","examples":["My AI Assistant Filter Function"]}}},"delay":{"type":"object","description":"The configured delay between an account event and the assistant run. The default delay is one minute.","additionalProperties":false,"properties":{"time_value":{"type":"integer","description":"The delay amount, expressed in time_unit.","examples":[1]},"time_unit":{"type":"string","description":"The unit used for time_value.","enum":["minutes","hours","days"],"examples":["minutes"]}}},"limits":{"additionalProperties":false,"type":"object","description":"Configured limits on how often account events can start this assistant for the same item.","properties":{"max_run_count":{"type":"integer","description":"The maximum number of runs for the same item. A value of 1 limits the assistant to one run per item.","examples":[1]},"min_time_value":{"type":"integer","description":"The minimum interval between runs for the same item, expressed in min_time_unit. Applies when max_run_count is greater than 1.","examples":[1]},"min_time_unit":{"type":"string","description":"The unit for the interval between runs for the same item. Applies when max_run_count is greater than 1.","enum":["hours","days"],"examples":["hours"]}}}}},"schedule":{"additionalProperties":false,"type":"object","description":"The cron schedule and timezone used when the trigger is schedule.","properties":{"cron_expression":{"type":"string","description":"The five-part cron expression that defines when the assistant runs.","examples":["0 9 * * *"]},"cron_timezone":{"type":"string","description":"The IANA timezone used to interpret the cron expression. Defaults to UTC when not specified.","examples":["America/New_York"]}}}}}}},"flow":{"type":"array","description":"The assistant’s workflow nodes and their connections. Each node’s type determines its purpose and settings; input and output connections define the workflow sequence.","items":{"type":"object","additionalProperties":false,"description":"An AI Assistant workflow node. The node type determines which ports and settings apply.","properties":{"id":{"type":"string","description":"The node’s unique ID within this workflow. Connections use this ID to identify the node.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","description":"The type of node in the flow.","enum":["start_thread","action_step","action_branch","action_time_delay","action_end_thread"],"examples":["start_thread","action_step","action_branch","action_time_delay","action_end_thread"]},"inputs":{"type":"object","additionalProperties":false,"description":"Input ports. A start_thread node returns an empty object. Other node types may have input_1; a present port may have an empty connections array.","properties":{"input_1":{"type":"object","additionalProperties":false,"description":"A workflow port and its connections.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"description":"The output port on the upstream node connected to this input.","examples":["output_1","output_2","output_3","output_4"]}}}}}}}},"outputs":{"type":"object","additionalProperties":false,"description":"Configured output ports. start_thread, action_step and action_time_delay use output_1; action_branch can use output_1 through output_4. Omitted when no output ports are configured, and always omitted for action_end_thread.","properties":{"output_1":{"type":"object","additionalProperties":false,"description":"The output port for start_thread, action_step or action_time_delay, or the first branch output for action_branch.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_2":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_2 is the output for its matching branch condition.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_3":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_3 is the output for its matching branch condition.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}},"output_4":{"type":"object","additionalProperties":false,"description":"Applies only to action_branch. output_4 is the fallback output when no branch condition matches.","properties":{"connections":{"type":"array","minItems":0,"maxItems":1,"description":"At most one connection for this port. An empty array means the port has no connection.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID; may be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"description":"The input port on the downstream node connected to this output.","examples":["input_1"]}}}}}}}},"position":{"type":"object","description":"The node’s position in the visual workflow editor, in pixels. Position does not determine execution order.","additionalProperties":false,"properties":{"x_axis":{"type":"integer","description":"Horizontal position in pixels.","examples":[100]},"y_axis":{"type":"integer","description":"Vertical position in pixels.","examples":[100]}}},"node_settings":{"type":"object","additionalProperties":false,"description":"Settings for this node: step_message for action_step; output_1_message through output_3_message for action_branch; time_unit and time_value for action_time_delay. Branch conditions are evaluated in order, with output_4 used if none match. Omitted for start_thread and action_end_thread, or when settings are unavailable. Message strings may be empty.","properties":{"step_message":{"type":"string","description":"The message sent to the AI for an action_step node. May be empty.","examples":["What is the status of the order?"]},"output_1_message":{"type":"string","description":"The condition the AI evaluates for output_1 of an action_branch node. May be empty.","examples":["The sale is paid."]},"output_2_message":{"type":"string","description":"Applies to action_branch. The condition for output_2, evaluated after earlier branch conditions. An empty or omitted message leaves this condition unused.","examples":["The sale is pending payment."]},"output_3_message":{"type":"string","description":"Applies to action_branch. The condition for output_3, evaluated after earlier branch conditions. An empty or omitted message leaves this condition unused.","examples":["The sale is cancelled."]},"time_unit":{"type":"string","description":"Applies to action_time_delay. The unit of time for the delay before continuing through output_1.","enum":["minutes","hours","days"],"examples":["minutes"]},"time_value":{"type":"string","description":"Applies to action_time_delay. The delay as a positive whole-number string. Leading zeros may be present.","examples":["10"]}}}}}},"third_party_integration":{"title":"Third Party Integration","type":["object","null"],"additionalProperties":false,"description":"The configured AI provider integration, or null when none is available.","properties":{"id":{"description":"The 20-character public ID of the AI provider integration in your account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"The name given to the AI provider integration in your account.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider associated with this integration.","additionalProperties":false,"properties":{"id":{"description":"The AI provider’s 20-character public ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit An AI Assistant","description":"Edit a previously created AI Assistant using the AI Assistant ID. Only supplied fields are updated. Partial trigger updates are checked together with the current settings. Account-event filters are replaced when supplied.","operationId":"EditAIAssistant","x-api-permission-description":"Allows the edit/modification of an existing AI Assistant.","x-api-permission":"ai_assistant:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/EditAIAssistant.md","tags":["AI Assistants"],"parameters":[{"in":"path","name":"ai_assistant_id","description":"The AI Assistant ID","required":true,"schema":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Assistant name, up to 100 characters. Must contain non-whitespace text.","minLength":1,"maxLength":100,"examples":["Example"]},"description":{"type":"string","description":"The AI Assistant description. Omit to keep the current description. Send an empty string to clear it.","maxLength":2000,"examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Assistant is enabled."},"settings":{"type":"object","description":"The settings for the AI Assistant.","additionalProperties":false,"properties":{"assistant_instructions":{"type":"string","description":"The instructions for the AI Assistant. These are the base instructions that will be provided to the AI model with every AI Thread associated with the AI Assistant. Useful for setting the overall behavior of the assistant and not for actual actions to perform. Do not include instructions for specific actions to perform in the assistant instructions. Must contain at least one non-whitespace character.","minLength":1,"maxLength":100000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"assistant_limits":{"type":"object","description":"The limits for the AI Assistant. These limits will apply to all AI Threads associated with the AI Assistant.","additionalProperties":false,"properties":{"thread_max_tokens":{"type":"integer","description":"The maximum number of tokens that an AI Thread associated with the AI Assistant can consume before the thread is automatically stopped. Useful for preventing excessively long threads that consume a large number of tokens. 0 means no limit. Default is 0.","minimum":0,"maximum":1000000000,"examples":[0]},"token_max_per_day":{"type":"integer","description":"The maximum number of tokens that an AI Assistant can consume in a 24 hour period. Useful for preventing excessive usage. 0 means no limit. Default is 0.","minimum":0,"maximum":1000000000,"examples":[0]}}},"trigger_settings":{"type":"object","description":"Fields to update in the trigger configuration. Omitted fields keep their current values. The resulting configuration must be valid for the selected trigger. When changing to account_event or schedule, provide its required configuration if it has not already been configured.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The event that triggers the AI Assistant. An AI Assistant can be triggered by an account event, on demand via API, or on a schedule determined by a valid 5 part cron expression.\nOptions:\n'account_event': The AI Assistant is triggered when a specific event occurs within your RevCent account.\n'on_demand': The AI Assistant is triggered either via API, Web App or as a System Tool within another AI Assistants' thread.\n'schedule': The AI Assistant is triggered on a fixed schedule.","enum":["account_event","schedule","on_demand"],"examples":["account_event"]},"account_event":{"additionalProperties":false,"type":"object","description":"Account-event settings to update. Omitted fields keep their current values. Filters replace the previous filter selection and must match the supplied notation, or the current notation when omitted.","properties":{"notation":{"type":"string","description":"The notation for the account event trigger. Read more at https://kb.revcent.com/en/revcent-account/events to understand notation formatting and their associated event data.","examples":["sale.created.success.paid"],"enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened"]},"filters":{"type":"object","additionalProperties":false,"description":"Optional filters for the selected account-event notation. The event type is the segment before the first dot in notation. Use only the fields and values documented for that event type; the API enforces applicability. References must belong to your account. Empty arrays apply no restriction.","properties":{"ai_assistant_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: ai_memo."},"status_filter":{"description":"Filter by status. Supported values by event type: ai_memo: unread, read; chargeback: representment_none, representment_pending, representment_won, representment_lost; check_direct: pending_receipt, received, fraud, chargeback; customer: enabled, disabled, blocked, fraud, chargeback; fraud_detection: created, false_positive; note: enabled, disabled, blocked, fraud, chargeback; offline_payment: complete, refunded, fraud, chargeback; pending_refund: complete, processing; product: enabled, disabled; product_sale: nocapture, captured, settled, complete, void, refund, fraud, chargeback; sale: nocapture, captured, partialcapture, settled, refund, void, cancelled, fraud_alert, fraud, chargeback, pending_payment; salvage_transaction: salvaged, not_salvaged; shipping: nocapture, captured, settled, refund, void; subscription: active, trial, overdue, occurrence_limit, suspended, expired, replaced, cancelled, fraud, chargeback; subscription_renewal: captured, settled, refund, void, overdue, fraud, chargeback, error; tax: nocapture, captured, settled, refund, void, fraud, chargeback; transaction: captured, settled, refund, void, complete; trial: active, expired, expiredpaymentpartialdecline, expiredpaymentfulldecline, expiredpaymenterror, inactive, cancelled, fraud, chargeback.","type":"array","items":{"type":"string","enum":["unread","read","representment_none","representment_pending","representment_won","representment_lost","pending_receipt","received","fraud","chargeback","enabled","disabled","blocked","created","false_positive","complete","refunded","processing","nocapture","captured","settled","void","refund","partialcapture","cancelled","fraud_alert","pending_payment","salvaged","not_salvaged","active","trial","overdue","occurrence_limit","suspended","expired","replaced","error","expiredpaymentpartialdecline","expiredpaymentfulldecline","expiredpaymenterror","inactive"],"examples":["unread"]}},"campaign_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial."},"currency_filter":{"type":"array","items":{"type":"string","description":"Three-letter currency code. Letter case is ignored.","examples":["USD"]},"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax."},"gateway_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, pending_refund, transaction."},"method_filter":{"description":"Filter by method. Supported values by event type: chargeback: sale_create, subscription_renew, trial_expire, salvage_transaction_process; fraud_detection: sale_create, subscription_renew, trial_expire, salvage_transaction_process; salvage_transaction: sale_partial, trial, subscription_renewal; transaction: sale_create, subscription_renew, trial_expire, pending_refund_process, salvage_transaction_process.","type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","sale_partial","trial","subscription_renewal","pending_refund_process"],"examples":["sale_create"]}},"shop_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction."},"metadata_filter":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name to match. Must be nonblank and no longer than 100 UTF-16 code units in the submitted text, including surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two. Surrounding whitespace is trimmed for matching.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value to match. Must be nonblank and no longer than 255 UTF-16 code units in the submitted text, including surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two. Surrounding whitespace is trimmed for matching.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial. All distinct metadata names must match; multiple values for the same name are alternatives. Use METADATA_NAME_EXISTS to require the name regardless of value.","maxItems":50},"customer_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: customer, note."},"product_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: customer, note, product_sale, subscription, subscription_renewal, trial."},"payment_type_filter":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","check_direct","offline"],"examples":["credit_card"]},"description":"Supported event types: discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial."},"paypal_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: paypal_dispute, paypal_transaction, pending_refund."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","enum":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"],"examples":["OPEN"]},"description":"Supported event types: paypal_dispute."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","enum":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"],"examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]},"description":"Supported event types: paypal_dispute."},"product_type_filter":{"type":"array","items":{"type":"string","enum":["basic","subscription","subscription_only","trial","trial_only"],"examples":["basic"]},"description":"Supported event types: product."},"product_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product."},"fulfillment_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product, shipping."},"subscription_profile_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product, subscription, subscription_renewal."},"project_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: product."},"payment_profile_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Supported event types: salvage_transaction, transaction."},"shipping_status_filter":{"type":"array","items":{"type":"string","enum":["shipped","notshipped","merged","delivered","error"],"examples":["shipped"]},"description":"Supported event types: shipping."},"shipping_provider_filter":{"type":"array","items":{"type":"string","enum":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"],"examples":["apc"]},"description":"Supported event types: shipping."},"result_filter":{"type":"array","items":{"type":"string","enum":["approved","declined","error","held"],"examples":["approved"]},"description":"Supported event types: transaction."}}},"filter_function":{"type":"string","description":"A filter function allows you to further refine whether or not the AI Assistant is triggered based on an account event details. You can use a filter function to parse the specific account event details and determine whether the AI Assistant should be triggered. A filter function must respond with a string value of either 'pass' or 'fail'. The filter function must be created with an event_source of 'api_direct' in order to be accessible. Read more about using a filter function <a href=\"https://kb.revcent.com/en/tools/ai/assistants#filter-function\" target=\"_blank\">here</a>. To remove a filter function submit an empty string for this value.","oneOf":[{"const":""},{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account."}],"examples":[""]},"delay":{"type":"object","description":"Delay after the account event before starting the assistant. Default: 1 minute. Maximum: 7 days (168 hours or 10080 minutes). This is separate from a flow Time Delay node.","additionalProperties":false,"properties":{"time_value":{"type":"integer","description":"The value of the time delay.","minimum":1,"maximum":10080,"examples":[1]},"time_unit":{"type":"string","description":"The unit of time for the delay.","enum":["minutes","hours","days"],"examples":["minutes"]}},"allOf":[{"if":{"properties":{"time_unit":{"const":"days"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":7}}}},{"if":{"properties":{"time_unit":{"const":"hours"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":168}}}},{"if":{"properties":{"time_unit":{"const":"minutes"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"maximum":10080}}}}]},"limits":{"additionalProperties":false,"type":"object","description":"Limits for repeated runs on the same item. Defaults: max_run_count 1, min_time_value 30, min_time_unit days. When max_run_count is 1, the minimum interval does not affect eligibility. For larger counts, supply a positive interval.","properties":{"max_run_count":{"type":"integer","description":"The maximum number of runs per item. Highly recommended set to 1 to prevent multiple runs for the same item within same events.","minimum":1,"maximum":100000,"examples":[1]},"min_time_value":{"type":"integer","description":"If max_run_count is greater than 1, the value for the time unit that must transpire between runs for the same item.","minimum":1,"maximum":100000,"examples":[1]},"min_time_unit":{"type":"string","description":"If max_run_count is greater than 1, the unit of time that must transpire between runs for the same item.","enum":["hours","days"],"examples":["hours"]}}}}},"schedule":{"additionalProperties":false,"type":"object","description":"If the trigger is schedule, the cron expression that determines when the AI Assistant will be triggered. The cron expression must be a valid 5 part cron expression.","properties":{"cron_expression":{"type":"string","description":"A valid five-part cron expression with at least one hour between scheduled runs. Must contain at least one non-whitespace character.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"cron_timezone":{"type":"string","description":"IANA timezone for the schedule. Defaults to UTC on creation. Omission during an edit keeps the current timezone. Must contain at least one non-whitespace character.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}}},"flow":{"type":"array","minItems":1,"maxItems":250,"items":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"start_thread","examples":["start_thread"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":0,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","additionalProperties":false,"properties":{}}},"required":["id","type"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_step","examples":["action_step"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_step'.","additionalProperties":false,"properties":{"step_message":{"type":"string","description":"Applies to an 'action_step' node. The message that will be sent to the AI. Maximum 20,000 characters (some characters, including many emoji, count as two). Must contain at least one non-whitespace character.","maxLength":20000,"minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["step_message"]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_branch","examples":["action_branch"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_2":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_3":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}},"output_4":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Branch outputs 1–3 correspond to their nonempty condition messages in numeric order. A model result of none follows output_4. At most one target per output; no fan-out. A selected unconnected output has no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_branch'. This is treated as an if > else if > else statement. The messages are sent to the AI and the AI determines which branch condition is met and thus which output to go down. If no conditions are met, output_4 is used.","additionalProperties":false,"properties":{"output_1_message":{"type":"string","description":"Applies to an 'action_branch' node. The message that will be sent to the AI to determine if the branch condition is met for output 1. Maximum 20,000 characters (some characters, including many emoji, count as two). Must contain at least one non-whitespace character.","maxLength":20000,"minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"output_2_message":{"type":"string","description":"Optional condition for output_2, evaluated after output_1 by the model. Omission or an empty string skips this condition; it does not suppress output_3. Maximum 20,000 characters (some characters, including many emoji, count as two).","maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"output_3_message":{"type":"string","description":"Optional condition for output_3, evaluated after the other supplied conditions by the model. Omission or an empty string skips this condition. Maximum 20,000 characters (some characters, including many emoji, count as two).","maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["output_1_message"]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_time_delay","examples":["action_time_delay"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","enum":["input_1"],"examples":["input_1"]}},"required":["node","output"]}}}}},"description":"Optional output_1 for start, step and time delay nodes. At most one target per output. Omitted or empty ports have no continuation."},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","description":"The settings for an AI Assistant flow node of type 'action_time_delay'. This node causes a delay in the flow for a specified amount of time before proceeding to other nodes via output_1.","additionalProperties":false,"properties":{"time_unit":{"type":"string","description":"The unit of time for the time delay.","enum":["minutes","hours","days"],"examples":["minutes"]},"time_value":{"type":"string","description":"Delay as a positive integer string: 1–3 days, 1–72 hours or 1–4320 minutes. Leading zeros are allowed; fractions, signs, whitespace and scientific notation are not accepted.","minLength":1,"maxLength":20000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["time_unit","time_value"],"allOf":[{"if":{"properties":{"time_unit":{"const":"days"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For days, supply an integer string from 1 through 3, inclusive. Leading zeros are allowed."}}}},{"if":{"properties":{"time_unit":{"const":"hours"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For hours, supply an integer string from 1 through 72, inclusive. Leading zeros are allowed."}}}},{"if":{"properties":{"time_unit":{"const":"minutes"}},"required":["time_unit"]},"then":{"properties":{"time_value":{"description":"For minutes, supply an integer string from 1 through 4320, inclusive. Leading zeros are allowed."}}}}]}},"required":["id","type","node_settings"]},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","const":"action_end_thread","examples":["action_end_thread"]},"inputs":{"type":"object","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","maxItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"Exact node ID: 1–80 ASCII letters, digits, underscores or hyphens. IDs must be unique within the flow. Whitespace is not trimmed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3","output_4"],"examples":["output_1"]}},"required":["node","input"]}}}}}},"outputs":{"type":"object","additionalProperties":false,"properties":{}},"position":{"type":"object","additionalProperties":false,"properties":{"x_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]},"y_axis":{"type":"number","minimum":-100000,"maximum":100000,"description":"Finite pixel coordinate; fractional values are allowed. Omission uses a bounded generated position.","examples":[0]}}},"node_settings":{"type":"object","additionalProperties":false,"properties":{}}},"required":["id","type"]}],"description":"Node-specific settings and ports are determined by type. Start/end settings may be omitted or empty; step, branch and delay settings are required. Unconnected nodes are allowed."},"description":"Complete replacement assistant flow, including disconnected editor drafts. Exactly one start_thread and unique node IDs are required. Every declared edge must point to an existing node and be reciprocal at both ports. At most one incoming connection per node and one target per output; start has no incoming edge and end has no outputs. Self connections and directly consecutive time delay nodes are rejected, including in drafts. All connections must satisfy these rules for the flow to be accepted. Only the selected path executes; disconnected nodes are preserved. Start, step and delay continue through output_1. Branch conditions are model-directed, in output_1/output_2/output_3 order for nonempty messages; a none result selects output_4. An unconnected selected port has no continuation. End terminates the thread. Each node can run at most once per thread; cycles do not repeat actions. Node messages are limited to 20,000 characters; some characters, including many emoji, count as two toward this limit."},"third_party_integration":{"type":"string","description":"The 20 character string of an existing user third party integration in RevCent that will power the AI Assistant. The user third party integration should have a site integration of type 'ai'. Supported third parties are OpenAI, Google Gemini, xAI and OpenRouter.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","minProperties":1}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_assistant_id":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Assistant-flow node settings could not be accepted.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0959","E0958"],"examples":["E0959"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected assistant-flow node.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies the invalid node setting.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_assistants/{ai_assistant_id}/trigger":{"post":{"summary":"Trigger An AI Assistant","description":"Trigger a specific AI Assistant using the AI Assistant ID and trigger path. Triggering an AI Assistant will generate a unique AI Thread that will run autonomously.<br><br>Note: You can only trigger an AI Assistant with a trigger setting of 'on_demand' using the API.","operationId":"TriggerAIAssistant","x-api-permission-description":"Allows the triggering of an AI Assistant.","x-api-permission":"ai_assistant:trigger","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/TriggerAIAssistant.md","tags":["AI Assistants"],"parameters":[{"in":"path","name":"ai_assistant_id","description":"The AI Assistant ID","required":true,"schema":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"source_type":{"type":"string","description":"Only provide if you are triggering an AI Assistant for a specific item in RevCent, i.e a sale, customer, etc.","enum":["item"],"examples":["item"]},"item_type":{"type":"string","description":"Only provide if source type is 'item'. Specify the item type.","enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"],"examples":["sale"]},"item_id":{"type":"string","description":"Only provide if source type is 'item'. Provide the ID of the item corresponding to the item_type.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"previous_ai_thread":{"type":"object","additionalProperties":false,"description":"Optional context from an existing thread belonging to a different assistant in your account. Supply ai_thread_id. Set include_messages to true to include its messages.","properties":{"ai_thread_id":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"include_messages":{"description":"Indicate whether to pass the existing AI Threads' messages when triggering the AI Assistant. This will consume more tokens and is only recommended if the existing AI Thread context is necessary.","type":"boolean"}},"required":["ai_thread_id"]},"messages":{"description":"Optional new messages for this run. You may combine these with previous_ai_thread. If include_messages is true, do not repeat messages already included from that thread.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"role":{"description":"The role associated with the message.","type":"string","enum":["user","system"],"examples":["user"]},"content":{"description":"The content of the message. Must contain at least one non-whitespace character.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["role","content"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","dependentRequired":{"source_type":["item_type","item_id"],"item_type":["source_type","item_id"],"item_id":["source_type","item_type"]}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_thread_id":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"ai_assistant_id":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Invalid request or the selected resource could not be triggered.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"The selected AI Assistant could not be triggered.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","enum":[0],"examples":[0]},"ai_assistant_id":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"message":{"type":"string","description":"Explanation of the trigger failure, or \"AI error occurred.\" when no explanation is available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","enum":["AI Assistant error occurred."],"examples":["AI Assistant error occurred."]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_assistants/{ai_assistant_id}/delete":{"post":{"summary":"Delete An AI Assistant","description":"Delete a specific AI assistant using the AI assistant ID and delete path.","operationId":"DeleteAIAssistant","x-api-permission-description":"Allows the deletion of an AI Assistant.","x-api-permission":"ai_assistant:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteAIAssistant.md","tags":["AI Assistants"],"parameters":[{"in":"path","name":"ai_assistant_id","description":"The AI assistant ID","required":true,"schema":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_assistant_id":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"result":{"type":"string","examples":["AI assistant deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_memos":{"get":{"summary":"Get AI Memos","description":"Returns a paginated list of AI Memos. AI Memos are retained for a maximum of 7 days from creation.","operationId":"GetAIMemos","x-api-permission-description":"Allows the retrieval of AI Memos.","x-api-permission":"ai_memo:retrieve","x-ai-options":["ai_assistant"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The difference between date_start and date_end cannot exceed a 7 day period.","x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-memos","x-kb-name":"AI Memos","x-md-link":"","tags":["AI Memos"],"parameters":[{"description":"The inclusive start of the date range as a Unix timestamp in seconds.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"The exclusive end of the date range as a Unix timestamp in seconds.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"The maximum number of items to return on a page, from 1 to 25. This parameter is required.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve. Use 1 for the first page; 0 also returns the first page. The maximum page number is 20.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Return items associated with any of the supplied AI Assistant IDs.","name":"ai_assistant_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Return AI Memos matching any of the supplied statuses. Query values use lowercase unread and read; response statuses are Unread and Read.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["unread","read"],"examples":["unread","read"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Memo list response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"The number of memos returned in this page’s results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The returned page number.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Memo ID.","type":"string","title":"AI Memo ID","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]},"subject":{"type":"string","description":"The subject of the AI Memo.","examples":["A Gateway Is Disabled."]},"message":{"type":"string","description":"The AI Memo’s message text.","examples":["The AI Assistant wishes to tell you that one of your gateways is not able to process."]},"source_type":{"type":"string","description":"The source context associated with the AI Memo. A value of none means no source item is associated. When a source item is available, item_type and item_id identify it.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_type":{"type":"string","description":"The related resource type. Returned together with item_id and source_type when the memo has an associated source item.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"type":"string","minLength":20,"maxLength":20,"description":"The related resource’s 20-character public ID. Returned together with item_type and source_type when the memo has an associated source item.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant that created the AI Memo.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant that created the AI Memo."},"ai_thread":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]}},"type":"object","description":"The AI Thread in which the memo was created."},"status":{"type":"string","description":"The memo’s read status: Unread or Read.","examples":["Unread","Read"],"enum":["Unread","Read"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The AI Memos returned for the requested page."},"total_count":{"minimum":0,"description":"The total number of memos matching the supplied date range and optional filters.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"The calculated number of pages for the total match count and requested limit.","type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An AI Memo","description":"Create an AI Memo.<br><br>Note: Only an AI Assistant can create an AI Memo. An AI Memo is created when an AI Assistant calls the AI Memo Create API method during the run of an AI thread.","operationId":"CreateAIMemo","x-api-permission-description":"Allows the creation of an AI Memo.","x-api-permission":"ai_memo:create","x-ai-options":["ai_assistant"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-memos","x-kb-name":"AI Memos","x-md-link":"","tags":["AI Memos"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"ai_thread_id":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"subject":{"type":"string","description":"The AI Memo subject. A short description of the memo. Maximum 100 characters in length.","minLength":1,"maxLength":100,"examples":["A Gateway Is Disabled."]},"message":{"type":"string","description":"The AI Memo message. The actual contents of the memo. Maximum 1000 characters in length.","minLength":1,"maxLength":1000,"examples":["One of your gateways is not able to process due to an error. You might want to look into this."]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["subject","message","ai_thread_id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_memo_id":{"type":"string","title":"AI Memo ID","description":"A 20 character AI Memo ID.","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]},"result":{"type":"string","examples":["AI Memo created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_memos/{ai_memo_id}":{"get":{"summary":"Get An AI Memo","description":"Retrieve a specific AI Memo, including its message and related AI Assistant and Thread.","operationId":"GetAIMemo","x-api-permission-description":"Allows the retrieval of AI Memos.","x-api-permission":"ai_memo:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-memos","x-kb-name":"AI Memos","x-md-link":"markdown/mcp/operation/GetAIMemo.md","tags":["AI Memos"],"parameters":[{"in":"path","name":"ai_memo_id","description":"The 20-character public ID of the AI Memo to retrieve.","required":true,"schema":{"description":"A 20-character AI Memo ID.","type":"string","title":"AI Memo ID","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Memo retrieval response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Memo ID.","type":"string","title":"AI Memo ID","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]},"subject":{"type":"string","description":"The subject of the AI Memo.","examples":["A Gateway Is Disabled."]},"message":{"type":"string","description":"The AI Memo’s message text.","examples":["The AI Assistant wishes to tell you that one of your gateways is not able to process."]},"source_type":{"type":"string","description":"The source context associated with the AI Memo. A value of none means no source item is associated. When a source item is available, item_type and item_id identify it.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_type":{"type":"string","description":"The related resource type. Returned together with item_id and source_type when the memo has an associated source item.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"type":"string","minLength":20,"maxLength":20,"description":"The related resource’s 20-character public ID. Returned together with item_type and source_type when the memo has an associated source item.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant that created the AI Memo.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant that created the AI Memo."},"ai_thread":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]}},"type":"object","description":"The AI Thread in which the memo was created."},"status":{"type":"string","description":"The memo’s read status: Unread or Read.","examples":["Unread","Read"],"enum":["Unread","Read"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetAIMemoSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_memos/{ai_memo_id}/delete":{"post":{"summary":"Delete An AI Memo","description":"Delete a specific AI Memo using the AI Memo ID and delete path.","operationId":"DeleteAIMemo","x-api-permission-description":"Allows the deletion of an AI Memo.","x-api-permission":"ai_memo:delete","x-ai-options":["ai_assistant"],"x-kb-link":"","x-kb-name":"","x-md-link":"","tags":["AI Memos"],"parameters":[{"in":"path","name":"ai_memo_id","description":"The AI Memo ID","required":true,"schema":{"type":"string","title":"AI Memo ID","description":"A 20 character AI Memo ID.","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"result":{"type":"string","examples":["AI Memo deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_memos/{ai_memo_id}/mark_as_read":{"post":{"summary":"Mark An AI Memo As Read","description":"Mark a specific AI Memo as read using the AI Memo ID and mark as read path.<br><br>This is operation is meant for keeping track of which AI Memos have already been reviewed manually, by AI or external systems. This operation should be conducted after retrieving the AI Memo via the GetAIMemo operation.","operationId":"MarkAIMemoAsRead","x-api-permission-description":"Allows marking an AI Memo as read.","x-api-permission":"ai_memo:mark_as_read","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-memos","x-kb-name":"AI Memos","x-md-link":"markdown/mcp/operation/MarkAIMemoAsRead.md","tags":["AI Memos"],"parameters":[{"in":"path","name":"ai_memo_id","description":"The AI Memo ID","required":true,"schema":{"type":"string","title":"AI Memo ID","description":"A 20 character AI Memo ID.","minLength":20,"maxLength":20,"examples":["Spn1kbY9yVV1q65avW45"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"result":{"type":"string","examples":["AI Memo marked as read."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_prompts":{"get":{"summary":"Get AI Prompts","description":"Returns a paginated list of AI Prompt IDs, names, and creation and update timestamps. Use GetAIPrompt to retrieve the prompt text.","operationId":"GetAIPrompts","x-api-permission-description":"Allows the retrieval of AI Prompts.","x-api-permission":"ai_prompt:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/tools/ai/chat#ai-prompts","x-kb-name":"AI Prompts","x-md-link":"markdown/mcp/operation/GetAIPrompts.md","tags":["AI Prompts"],"parameters":[{"description":"The maximum number of items to return on a page, from 1 to 25. This parameter is required.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve. Use 1 for the first page; 0 also returns the first page. The maximum page number is 20.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Prompt list response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"The number of AI Prompts returned in this page’s results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The returned page number.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Prompt ID.","type":"string","title":"AI Prompt ID","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]},"name":{"type":"string","description":"The AI Prompt name.","examples":["My Awesome Prompt"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The AI Prompt summaries returned for the requested page. Use GetAIPrompt with an item’s id to retrieve its prompt text."},"total_count":{"minimum":0,"description":"The total number of AI Prompts in your account.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"The calculated number of pages for the total AI Prompt count and requested limit.","type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAIPromptsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An AI Prompt","description":"Create an AI Prompt.","operationId":"CreateAIPrompt","x-api-permission-description":"Allows the creation of an AI Prompt.","x-api-permission":"ai_prompt:create","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/chat#ai-prompts","x-kb-name":"AI Prompts","x-md-link":"markdown/mcp/operation/CreateAIPrompt.md","tags":["AI Prompts"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Prompt name. Maximum 100 characters in length.","minLength":1,"maxLength":100,"examples":["My Awesome Prompt"]},"prompt":{"type":"string","description":"The AI Prompt text. Maximum 10kb in size.","minLength":1,"examples":["What was my total sales gross yesterday, grouped by product? Create a table as well."]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","prompt"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_prompt_id":{"type":"string","title":"AI Prompt ID","description":"A 20 character AI Prompt ID.","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]},"result":{"type":"string","examples":["AI Prompt created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_prompts/{ai_prompt_id}":{"get":{"summary":"Get An AI Prompt","description":"Retrieve a specific AI Prompt, including its full saved prompt text.","operationId":"GetAIPrompt","x-api-permission-description":"Allows the retrieval of AI Prompts.","x-api-permission":"ai_prompt:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/chat#ai-prompts","x-kb-name":"AI Prompts","x-md-link":"markdown/mcp/operation/GetAIPrompt.md","tags":["AI Prompts"],"parameters":[{"in":"path","name":"ai_prompt_id","description":"The 20-character public ID of the AI Prompt to retrieve.","required":true,"schema":{"description":"A 20-character AI Prompt ID.","type":"string","title":"AI Prompt ID","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Prompt retrieval response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Prompt ID.","type":"string","title":"AI Prompt ID","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]},"name":{"type":"string","description":"The AI Prompt name.","examples":["My Awesome Prompt"]},"prompt":{"type":"string","description":"The AI Prompt text. Maximum 10kb in size.","examples":["What was my total sales gross yesterday, grouped by product? Create a table as well."]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetAIPromptSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit An AI Prompt","description":"Edit an AI Prompt. Only provide the properties you wish to modify.","operationId":"EditAIPrompt","x-api-permission-description":"Allows the editing of an AI Prompt.","x-api-permission":"ai_prompt:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/chat#ai-prompts","x-kb-name":"AI Prompts","x-md-link":"markdown/mcp/operation/EditAIPrompt.md","tags":["AI Prompts"],"parameters":[{"in":"path","name":"ai_prompt_id","description":"The AI Prompt ID","required":true,"schema":{"type":"string","title":"AI Prompt ID","description":"A 20 character AI Prompt ID.","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Prompt name. Maximum 100 characters in length.","minLength":1,"maxLength":100,"examples":["My Awesome Prompt"]},"prompt":{"type":"string","description":"The AI Prompt text. Maximum 10kb in size.","minLength":1,"examples":["What was my total sales gross yesterday, grouped by product? Create a table as well."]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_prompt_id":{"type":"string","title":"AI Prompt ID","description":"A 20 character AI Prompt ID.","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]},"result":{"type":"string","examples":["AI Prompt edited."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_prompts/{ai_prompt_id}/delete":{"post":{"summary":"Delete An AI Prompt","description":"Delete a specific AI Prompt using the AI Prompt ID and delete path.","operationId":"DeleteAIPrompt","x-api-permission-description":"Allows the deletion of an AI Prompt.","x-api-permission":"ai_prompt:delete","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteAIPrompt.md","tags":["AI Prompts"],"parameters":[{"in":"path","name":"ai_prompt_id","description":"The AI Prompt ID","required":true,"schema":{"type":"string","title":"AI Prompt ID","description":"A 20 character AI Prompt ID.","minLength":20,"maxLength":20,"examples":["1q65avW4Spn1kbY9VVy5"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"result":{"type":"string","examples":["AI Prompt deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_threads":{"get":{"summary":"Get AI Threads","description":"Returns a paginated list of AI Threads without message content. Use GetAIThread to retrieve messages. AI Threads have a retention period of 45 days from creation.","operationId":"GetAIThreads","x-api-permission-description":"Allows the retrieval of AI Threads.","x-api-permission":"ai_thread:retrieve","x-ai-options":["ai_assistant"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The date range may span at most two days (172800 seconds), including exactly two days; date_start is inclusive and date_end is exclusive. Limit is 1–25. Page is 0–20, with page 0 treated as page 1.","x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-threads","x-kb-name":"AI Threads","x-md-link":"markdown/mcp/operation/OverviewAIThread.md","tags":["AI Threads"],"parameters":[{"description":"The inclusive start of the date range as a Unix timestamp in seconds. The range may span at most two days (172800 seconds).","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"The exclusive end of the date range as a Unix timestamp in seconds. A range of exactly two days (172800 seconds) is allowed.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"The maximum number of items to return on a page, from 1 to 25. This parameter is required.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve. Use 1 for the first page; 0 also returns the first page. The maximum page number is 20.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Return items associated with any of the supplied AI Assistant IDs.","name":"ai_assistant_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Return AI Threads matching any of the supplied statuses. Use running, timer, complete or error; cancelled is not a supported filter value.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["running","timer","complete","error"],"examples":["running","timer","complete","error"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The AI Thread list response.","properties":{"api_call_id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API call began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code. A value of 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of AI Threads returned in this page’s results.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The returned page number.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20-character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"status":{"type":"string","description":"The current run status: Running, Complete, Timer, Cancelled or Error.","examples":["Running","Complete","Timer","Cancelled","Error"],"enum":["Running","Complete","Timer","Cancelled","Error"]},"message_count":{"description":"The number of messages available in the messages array returned by GetAIThread for this thread. List responses omit message bodies.","type":"integer","examples":[10]},"total_tokens":{"description":"The total token usage reported for this AI Thread.","type":"integer","examples":[10]},"total_time_ms":{"description":"The total processing time recorded for this AI Thread, in milliseconds.","type":"integer","examples":[10]},"previous_ai_thread":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant associated with the previous thread.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant associated with the previous AI Thread."}},"type":"object","description":"The previous AI Thread linked to this run, when available, such as a handoff from another AI Assistant."},"trigger":{"additionalProperties":false,"properties":{"source":{"type":"string","description":"How the thread run started. An empty string means no trigger source is reported. The related-item context is described separately by source_type.","examples":["api","account_event"],"enum":["","account_event","api","on_demand","schedule"]},"notation":{"type":"string","description":"The account-event notation that started the thread. Returned for an account_event trigger when available.","examples":["sale.created.failed.declined"]},"api_call":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_account":{"type":"object","additionalProperties":false,"description":"The API account associated with the API call.","properties":{"id":{"type":"string","description":"A 20-character API account ID.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}}},"ai_assistant":{"type":"object","additionalProperties":false,"description":"The AI Assistant that made the associated API call, when available.","properties":{"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The AI Assistant name.","examples":["My AI Assistant"]}}}},"type":"object","description":"The API call associated with the thread's trigger, when available. May be returned for any trigger source."}},"type":"object","description":"Information about how the thread run started."},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20-character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant associated with this thread.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant associated with the AI Thread."},"third_party_integration":{"title":"Third Party Integration","type":"object","additionalProperties":false,"description":"The AI provider integration used by this thread.","properties":{"id":{"description":"The 20-character public ID of the AI provider integration in your account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"The name given to the AI provider integration in your account.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider associated with this integration.","additionalProperties":false,"properties":{"id":{"description":"The AI provider’s 20-character public ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"time_delay_expires":{"description":"The scheduled resume time in Unix seconds. Returned only when status is Timer and a scheduled resume time is available.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"source_type":{"description":"The related-item context for this thread, distinct from how the run started in trigger.source. Returned together with item_type and item_id when a related item is available; otherwise all three fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_type":{"description":"The type of the related item. Returned together with source_type and item_id when a related item is available; otherwise all three fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"description":"The 20-character public ID of the related item. Returned together with source_type and item_type when a related item is available; otherwise all three fields are omitted.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array","maxItems":25,"description":"The AI Thread summaries returned for the requested page. Message content is available through GetAIThread."},"total_count":{"description":"The total number of retrievable threads matching the supplied date range and optional filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The total number of pages of retrievable threads matching the supplied date range and optional filters, for the requested limit.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAIThreadsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_threads/{ai_thread_id}":{"get":{"summary":"Get An AI Thread","description":"Retrieve a specific AI Thread, including its available messages, tool calls, status and usage metrics.","operationId":"GetAIThread","x-api-permission-description":"Allows the retrieval of AI Threads.","x-api-permission":"ai_thread:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-threads","x-kb-name":"AI Threads","x-md-link":"markdown/mcp/operation/GetAIThread.md","tags":["AI Threads"],"parameters":[{"in":"path","name":"ai_thread_id","description":"The AI Thread ID.","required":true,"schema":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested AI Thread, including its available messages and tool calls.","properties":{"api_call_id":{"description":"A 20 character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Time this API call was initiated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"Thread creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20 character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"status":{"type":"string","description":"The current AI Thread status.","examples":["Running","Complete","Timer","Cancelled","Error"],"enum":["Running","Complete","Timer","Cancelled","Error"]},"messages":{"items":{"additionalProperties":false,"properties":{"role":{"type":"string","description":"The message role: user, assistant, system, or tool. A tool message reports a tool result.","examples":["user","assistant","system"],"enum":["user","assistant","system","tool"]},"content":{"type":["string","null"],"description":"The message content, when available. May be a string, null, or omitted; a string may be empty.","examples":["Hello AI, how are you?"]},"tool_call_id":{"type":"string","description":"The ID of the tool call this message responds to, when available. Correlates the response with the corresponding tool_calls[].id.","examples":["call_gN7FNcNHVUI0vABAxhRDwnc0"]},"tool_calls":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"The tool call ID, used by a response message's tool_call_id to identify the corresponding call.","examples":["call_gN7FNcNHVUI0vABAxhRDwnc0"]},"type":{"type":"string","description":"The tool call type; currently function.","examples":["function"],"enum":["function"]},"function_name":{"type":"string","description":"The name of the requested function.","examples":["GetSale"]},"function_args":{"type":"string","description":"The recorded argument text for the function call. This text is not guaranteed to be valid JSON.","examples":["{\"sale_id\":\"8R8lg0NgqWHWZwJ5p1an\"}"]}},"type":"object"},"type":"array","description":"The tool calls requested by the assistant in this message, when present."},"previous_ai_thread":{"additionalProperties":false,"properties":{"id":{"description":"The 20-character public ID of the thread this message originated from.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"created_date_unix":{"description":"The original message creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1744992291]}},"type":"object","description":"The earlier thread this message originated from and its original message timestamp, when available. Describes this message's origin independently of the thread-level previous_ai_thread relationship."},"created_date_unix":{"description":"Message creation time in Unix seconds, when available.","type":"integer","format":"unix-time","examples":[1744992291]},"third_party_name":{"type":"string","description":"The AI provider associated with this message, when available.","examples":["google_gemini","open_ai","xai"]},"third_party_model":{"type":"string","description":"The AI model associated with this message, when available.","examples":["gemini-2.0-flash","gpt-4o-mini"]}},"type":"object"},"type":"array","description":"The messages returned for this thread, including any associated tool calls. Message bodies are included in detail responses and omitted from list responses."},"message_count":{"description":"The number of messages in the returned messages array.","type":"integer","examples":[10]},"total_tokens":{"description":"Total reported token usage for the thread.","type":"integer","examples":[10]},"total_time_ms":{"description":"Total recorded processing time for the thread, in milliseconds.","type":"integer","examples":[10]},"previous_ai_thread":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant associated with the previous thread.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant associated with the previous AI Thread."}},"type":"object","description":"The previous thread associated with this thread's creation, when available. This thread-level relationship is separate from the origin reported on individual messages."},"trigger":{"additionalProperties":false,"properties":{"source":{"type":"string","description":"How the thread run started. An empty string means no trigger source is reported. The related-item context is described separately by source_type.","examples":["api","account_event"],"enum":["","account_event","api","on_demand","schedule"]},"notation":{"type":"string","description":"If the source is 'account_event', the account event notation indicating the event that triggered the thread.","examples":["sale.created.failed.declined"]},"api_call":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_account":{"type":"object","additionalProperties":false,"description":"The API account associated with the API call.","properties":{"id":{"type":"string","description":"A 20 character API account ID.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}}},"ai_assistant":{"type":"object","additionalProperties":false,"description":"If an AI Assistant made the API call that triggered the AI thread.","properties":{"id":{"description":"A 20 character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The AI Assistant name.","examples":["My AI Assistant"]}}}},"type":"object","description":"The API call associated with the thread's trigger, when available. May be returned for any trigger source."}},"type":"object","description":"Information about how the thread run started."},"ai_assistant":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"name":{"type":"string","description":"The name of the AI Assistant associated with this thread.","examples":["My AI Assistant"]}},"type":"object","description":"The AI Assistant associated with the AI Thread."},"third_party_integration":{"title":"Third Party Integration","type":"object","additionalProperties":false,"description":"The AI provider integration used by this thread.","properties":{"id":{"description":"The 20-character public ID of the AI provider integration in your account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"The name given to the AI provider integration in your account.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider associated with this integration.","additionalProperties":false,"properties":{"id":{"description":"The AI provider’s 20-character public ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"time_delay_expires":{"description":"The scheduled resume time in Unix seconds. Returned only when status is Timer and a scheduled resume time is available.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Time the thread was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"source_type":{"description":"The related-item context for this thread, distinct from how the run started in trigger.source. Returned together with item_type and item_id when a related item is available; otherwise all three fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_type":{"description":"The type of the related item. Returned together with source_type and item_id when a related item is available; otherwise all three fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"description":"The 20-character public ID of the related item. Returned together with source_type and item_type when a related item is available; otherwise all three fields are omitted.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"title":"GetAIThreadSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_threads/{ai_thread_id}/cancel":{"post":{"summary":"Cancel An AI Thread","description":"Cancel a specific AI thread using the AI thread ID and cancel path. The thread must have a status of Running or Timer.","operationId":"CancelAIThread","x-api-permission-description":"Allows the cancellation a specific AI thread. The thread must have a status of Running or Timer.","x-api-permission":"ai_thread:cancel","x-ai-options":["ai_assistant"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-threads","x-kb-name":"AI Threads","x-md-link":"","tags":["AI Threads"],"parameters":[{"in":"path","name":"ai_thread_id","description":"The AI Thread ID","required":true,"schema":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_thread_id":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"result":{"type":"string","examples":["AI Thread cancelled."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_agents":{"get":{"summary":"Get AI Voice Agents","description":"Retrieve a paginated list of AI Voice Agent configurations, including their instructions and settings.","operationId":"GetAIVoiceAgents","x-api-permission-description":"Allows the retrieval of AI Voice Agents.","x-api-permission":"ai_voice_agent:retrieve","x-ai-options":["mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/GetAIVoiceAgents.md","tags":["AI Voice Agents"],"parameters":[{"description":"A limit on the number of objects to be returned. Limit can range between 1 and 25, and the default is 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Used for pagination, i.e. to skip to specific page of results.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful response for GET /v2/ai_voice_agents.","properties":{"api_call_id":{"description":"A 20 character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The current number of items in the results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The current page for the items in the results.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time of the Voice Agent configuration, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","title":"AI Voice Agent ID","description":"20 character RevCent ID of the AI Voice Agent.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"name":{"type":"string","description":"The AI Voice Agent name.","examples":["My AI Voice Agent"]},"description":{"type":"string","description":"The AI Voice Agent description.","examples":["This is my AI Voice Agent."]},"enabled":{"type":"boolean","description":"Whether the AI Voice Agent is enabled."},"call_method":{"type":"string","description":"The AI Voice Agent call method.","examples":["inbound","outbound"]},"pre_agent_function":{"type":["object","null"],"additionalProperties":false,"description":"The configured custom function that runs before the voice agent and can supply additional values for Handlebars instruction templates. The function uses the api_direct trigger. Null when no accessible configured function is available. See <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#pre-agent-function\" target=\"_blank\">pre-agent function guidance</a>.","properties":{"id":{"description":"A 20 character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The pre-agent function name.","examples":["My AI Voice Pre-Agent Function"]}}},"settings":{"additionalProperties":false,"properties":{"voice":{"type":"string","description":"The configured AI voice, when available.","enum":["marin","cedar"],"examples":["marin","cedar"]},"instructions":{"additionalProperties":false,"properties":{"markdown":{"type":"string","description":"The complete saved instructions in Markdown. Handlebars expressions support caller-specific content, including values supplied by the pre-agent custom function. Instruction formatting and examples: <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions\" target=\"_blank\">Voice Agent instructions</a>. Conversation-flow guidance: <a href=\"https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow\" target=\"_blank\">Realtime prompting guide</a>.","examples":["Conversation Flow\n=================\n\nYou are an inbound voice agent. The customers first name is {{customer.first_name}}."]}},"type":"object","description":"The voice agent's configured instructions, when available."},"limits":{"additionalProperties":false,"properties":{"max_outbound_calls_per_customer":{"type":"integer","description":"The configured maximum number of outbound calls per customer, applicable when call_method is outbound.","minimum":0,"examples":[1]},"max_calls_per_day":{"type":"integer","description":"The configured maximum number of calls per day. Zero means no daily limit.","minimum":0,"examples":[0]},"max_duration":{"type":"integer","description":"The configured maximum call duration in minutes.","minimum":0,"examples":[15]}},"type":"object","description":"The configured call limits, when available. Individual limits may be omitted."},"system_actions":{"items":{"type":"string","description":"A configured action identified by its public API operation ID. Actions are opt-in; the corresponding operation describes what each action does.","enum":["GetCustomer","AddCustomerPaymentMethod","CreateCustomer","UpdatePendingSale","SearchCustomers","GetEmailTemplates","GetEmailTemplate","GetFunctions","GetFunction","TriggerFunction","InsertMetadata","CreateNote","GetPayPalTransaction","GetPendingRefund","GetProductSale","RefundProductSale","CreateSale","GetSale","VoidSale","AddFraudAlert","ProcessPendingSale","EstimateSale","GetShipment","EditShipment","RefundShipment","SendSMTPMessage","GetSMTPMessage","GetSubscriptionRenewal","RefundSubscriptionRenewal","GetSubscription","EditSubscription","ActivateSubscription","SuspendSubscription","CancelSubscription","RenewSubscription","GetTransaction","RefundTransaction","GetTrial","CancelTrial"],"examples":["GetCustomer","SearchCustomers"]},"type":"array","description":"Configured actions from the supported Voice Agent configuration list. Omitted when no action array is configured; a returned array may be empty."},"active_window":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the active window feature is enabled. When enabled, the AI Voice Agent will only be active during certain hours of the day specified by the user.","examples":[false]},"start_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will start being active. This is only relevant if the active window feature is enabled.","minimum":0,"examples":[9]},"end_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will stop being active. This is only relevant if the active window feature is enabled.","minimum":0,"examples":[17]},"timezone":{"type":"string","description":"The timezone in which the active window hours are specified.","examples":["America/New_York"]},"inactive_forward_number":{"type":"string","description":"The configured number for forwarding inbound calls during inactive hours. An empty value means no forwarding number is configured.","examples":["+1234567890"]}},"type":"object","description":"The configured hours during which the voice agent is active, when available. Individual settings may be omitted."},"trigger_settings":{"type":"object","description":"The configured outbound-call trigger settings, when available. Individual settings may be omitted.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The trigger for an outbound AI Voice Agent. Determines what triggers the AI Voice Agent to make an outbound call, either triggered based on an account event or on demand via API using the TriggerAIVoiceAgent operation.","enum":["account_event","on_demand"],"examples":["account_event","on_demand"]},"account_event":{"additionalProperties":false,"properties":{"notation":{"type":"string","description":"The voice agent's configured account-event notation, when present. May be empty or a historical value no longer accepted by POST. GET returns the configured value; use the POST schema when changing it. Notation formatting and event data are described at https://kb.revcent.com/en/revcent-account/events.","examples":["sale.created.success.paid"]},"delay_enabled":{"type":"boolean","description":"Whether a delay is configured before an account-event-triggered outbound call.","examples":[false]},"time_value":{"type":"integer","description":"The value for the time unit if the delay is enabled for the account event trigger.","minimum":0,"examples":[15]},"time_unit":{"type":"string","description":"The unit of time if the delay is enabled for the account event trigger.","enum":["minutes","hours","days"],"examples":["minutes"]},"filters":{"type":"object","additionalProperties":false,"description":"The voice agent's configured account-event filters. Applicability depends on the event item type identified by the first segment of the notation; each field lists its supported event types. These are configuration values, not GetAIVoiceAgents URL filters. GET may include historical values that do not satisfy current creation or editing rules; use the POST schema when changing filters. Omitted when no supported filter arrays are available.","properties":{"campaign_filter":{"type":"array","description":"Configured campaign filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","title":"Campaign ID","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"currency_filter":{"type":"array","description":"Configured currency filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["USD"]}},"customer_group_filter":{"type":"array","description":"Configured customer group filter values. Supported for customer, note account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}},"fulfillment_account_filter":{"type":"array","description":"Configured fulfillment account filter values. Supported for product, shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"gateway_filter":{"type":"array","description":"Configured gateway filter values. Supported for chargeback, pending_refund, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"metadata_filter":{"type":"array","description":"Configured metadata filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name that must be present on the event item.","minLength":1,"maxLength":100,"examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value that must match. Use 'METADATA_NAME_EXISTS' to require only that the metadata name exists, regardless of its value.","minLength":1,"maxLength":255,"examples":["Filter metadata value","METADATA_NAME_EXISTS"]}}},"maxItems":50},"method_filter":{"type":"array","description":"Configured method filter values. Supported for chargeback, fraud_detection, salvage_transaction, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["sale_create"]}},"payment_profile_filter":{"type":"array","description":"Configured payment profile filter values. Supported for salvage_transaction, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","title":"Payment Profile ID","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"payment_type_filter":{"type":"array","description":"Configured payment type filter values. Supported for discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["credit_card"]}},"product_filter":{"type":"array","description":"Configured product filter values. Supported for customer, note, product_sale, subscription, subscription_renewal, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"title":"Product ID","type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"result_filter":{"type":"array","description":"Configured result filter values. Supported for transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["approved"]}},"shipping_provider_filter":{"type":"array","description":"Configured shipping provider filter values. Supported for shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["ups"]}},"shipping_status_filter":{"type":"array","description":"Configured shipping status filter values. Supported for shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["shipped"]}},"shop_filter":{"type":"array","description":"Configured shop filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"status_filter":{"type":"array","description":"Configured status filter values. Supported for ai_memo, chargeback, check_direct, customer, fraud_detection, note, offline_payment, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["pending_payment"]}},"subscription_profile_filter":{"type":"array","description":"Configured subscription profile filter values. Supported for product, subscription, subscription_renewal account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"ai_assistant_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured ai assistant filter values. Supported for ai_memo account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal account filter values. Supported for paypal_dispute, paypal_transaction, pending_refund account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal dispute status filter values. Supported for paypal_dispute account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal dispute reason filter values. Supported for paypal_dispute account events. Omitted when not configured as an array; a returned array may be empty."},"product_type_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product type filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."},"product_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product group filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."},"project_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured project filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."}}},"filter_function":{"type":"object","additionalProperties":false,"description":"The configured custom function that evaluates account-event details and returns pass or fail to determine whether the voice agent is triggered. The function uses the api_direct trigger. Omitted when no accessible configured function is available. See <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#filter-function\" target=\"_blank\">filter function guidance</a>.","properties":{"id":{"description":"A 20 character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The filter function name.","examples":["My AI Voice Filter Function"]}}}},"type":"object","description":"The configured account-event trigger options, when available."},"limits":{"additionalProperties":false,"type":"object","description":"The maximum number of times the agent can be triggered for the same item. Read more at https://kb.revcent.com/en/tools/ai/voice-agents#max-runs-per-item","properties":{"max_calls_per_item":{"type":"integer","description":"The configured maximum number of calls for the same event item.","minimum":0,"examples":[1]},"min_time_value":{"type":"integer","description":"If max_calls_per_item is greater than 1, the value for the time unit that must transpire between runs for the same item.","minimum":0,"examples":[1]},"min_time_unit":{"type":"string","description":"If max_calls_per_item is greater than 1, the unit of time that must transpire between runs for the same item.","enum":["hours","days"],"examples":["hours"]}}}}}},"type":["object","null"],"description":"The voice agent's configured settings. Null when settings are unavailable. An object may contain only some settings or be empty."},"third_party_integration_ai":{"title":"Configured AI Integration","type":["object","null"],"additionalProperties":false,"description":"The configured AI integration. Null when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"The 20-character public ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20-character public ID of the AI provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"third_party_integration_voice":{"title":"Configured voice Integration","type":["object","null"],"additionalProperties":false,"description":"The configured voice integration. Null when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"The 20-character public ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My Voice Integration"]},"third_party":{"type":"object","description":"The voice provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20-character public ID of the voice provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The voice provider name.","examples":["Twilio"]}}}}},"updated_date_unix":{"description":"Last update time of the Voice Agent configuration, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The voice agents on the requested page, including their complete returned configuration and instruction Markdown."},"total_count":{"description":"The total number of retrievable voice agents matching the request.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total number of result pages for the requested limit.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAIVoiceAgentsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An AI Voice Agent","description":"Create an AI Voice Agent configuration and return its ID.","operationId":"CreateAIVoiceAgent","x-api-permission-description":"Allows the creation of a new AI Voice Agent.","x-api-permission":"ai_voice_agent:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/CreateAIVoiceAgent.md","tags":["AI Voice Agents"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Voice Agent name.","examples":["Example"]},"description":{"type":"string","description":"The AI Voice Agent description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Voice Agent is enabled."},"call_method":{"type":"string","description":"The AI Voice Agent call method.","enum":["inbound","outbound"],"examples":["inbound"]},"pre_agent_function":{"type":"string","description":"The pre-agent function that will be called before the AI Voice Agent is triggered. The pre-agent function can be used to generate additional content for within the agent instructions when compiling using handlebars syntax. The pre agent function must be created with a trigger of 'api_direct' in order to be accessible to an AI voice agent.<br><br>Read more about the pre-agent function <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#pre-agent-function\" target=\"_blank\">here</a>.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"settings":{"additionalProperties":false,"properties":{"voice":{"type":"string","description":"The AI voice to be used for the AI Voice Agent. The available voices depend on the list of available voices from OpenAI's realtime voice model.","enum":["marin","cedar"],"examples":["marin"]},"instructions":{"additionalProperties":false,"properties":{"markdown":{"type":"string","description":"The AI voice Agent instructions in markdown format. Agent instructions are generated for each call using the handlebars sytax, allowing for dynamic content based on the specific caller.<br><br>It is recommended to read more about creating the instructions markdown, including formatting, at <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions\" target=\"_blank\">https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions</a>.<br><br>Also, OpenAI has a section on conversation flow usage in instruction markdown at <a href=\"https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow\" target=\"_blank\">https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow</a>","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"The AI Voice Agent instructions.","required":["markdown"]},"limits":{"additionalProperties":false,"properties":{"max_outbound_calls_per_customer":{"type":"integer","description":"Maximum outbound calls allowed per customer, as a nonnegative integer. On creation, omission of the entire limits object uses 1; omission of this field within a supplied limits object uses 0. Omission on edit preserves the current value.","minimum":0,"examples":[0]},"max_calls_per_day":{"type":"integer","description":"The maximum number of calls allowed per day. Default is 0. 0 means no limit.","minimum":0,"examples":[0]},"max_duration":{"type":"integer","description":"Maximum call duration in whole minutes, from 0 through 15. On creation, omission of the entire limits object uses 15; omission of this field within a supplied limits object uses 0. Omission on edit preserves the current value.","minimum":0,"maximum":15,"examples":[0]}},"type":"object","description":"Limits to be placed on the AI Voice Agent regardless of inbound or outbound calls."},"system_actions":{"items":{"type":"string","description":"API operation ID this Voice Agent may call. Actions are opt-in. Use AddCustomerPaymentMethod for card payment-method collection; retired action names are not accepted or aliased.","enum":["GetCustomer","AddCustomerPaymentMethod","CreateCustomer","UpdatePendingSale","SearchCustomers","GetEmailTemplates","GetEmailTemplate","GetFunctions","GetFunction","TriggerFunction","InsertMetadata","CreateNote","GetPayPalTransaction","GetPendingRefund","GetProductSale","RefundProductSale","CreateSale","GetSale","VoidSale","AddFraudAlert","ProcessPendingSale","EstimateSale","GetShipment","EditShipment","RefundShipment","SendSMTPMessage","GetSMTPMessage","GetSubscriptionRenewal","RefundSubscriptionRenewal","GetSubscription","EditSubscription","ActivateSubscription","SuspendSubscription","CancelSubscription","RenewSubscription","GetTransaction","RefundTransaction","GetTrial","CancelTrial"],"examples":["GetCustomer"]},"type":"array","description":"System actions are API operations that can be called by AI during a call. It is highly recommended to only include system actions that may be needed by the AI Voice Agent depending on its purpose."},"active_window":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the active window feature is enabled. When enabled, the AI Voice Agent will only be active during certain hours of the day specified by the user."},"start_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will start being active. This is only relevant if the active window feature is enabled. Must be a whole hour from 0 through 23 whenever supplied, including when the active window is disabled.","minimum":0,"maximum":23,"examples":[0]},"end_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will stop being active. This is only relevant if the active window feature is enabled. Must be a whole hour from 0 through 23 whenever supplied, including when the active window is disabled.","minimum":0,"maximum":23,"examples":[0]},"timezone":{"type":"string","description":"The timezone in which the active window hours are specified.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"inactive_forward_number":{"type":"string","description":"If set, inbound calls will be forwarded to this number during inactive hours. Leave blank to not forward and simply hangup with a brief message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"If you wish to have this agent active only within certain hours during the day. Useful for limiting/preventing late outbound calls."},"trigger_settings":{"type":"object","description":"Required for outbound creation. When supplied, select a trigger. The account_event trigger also requires account_event settings with a valid notation.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The trigger for an outbound AI Voice Agent. Determines what triggers the AI Voice Agent to make an outbound call, either triggered based on an account event or on demand via API using the TriggerAIVoiceAgent operation.","enum":["account_event","on_demand"],"examples":["account_event"]},"account_event":{"additionalProperties":false,"properties":{"notation":{"type":"string","description":"The notation for the account event trigger. Read more at https://kb.revcent.com/en/revcent-account/events to understand notation formatting and their associated event data.","examples":["sale.created.success.paid"],"enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened"]},"delay_enabled":{"type":"boolean","description":"Whether to set a delay before the AI Voice Agent makes the outbound call. Useful when you may want to give the customer time to checkout after a failed sale before calling them, for example."},"time_value":{"type":"integer","description":"The value for the time unit if the delay is enabled for the account event trigger.","minimum":0,"examples":[0]},"time_unit":{"type":"string","description":"The unit of time if the delay is enabled for the account event trigger.","enum":["minutes","hours","days"],"examples":["minutes"]},"filters":{"type":"object","additionalProperties":false,"properties":{"ai_assistant_filter":{"description":"Supported event types: ai_memo.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"status_filter":{"description":"Filter by status. Supported values by event type: ai_memo: unread, read; chargeback: representment_none, representment_pending, representment_won, representment_lost; check_direct: pending_receipt, received, fraud, chargeback; customer: enabled, disabled, blocked, fraud, chargeback; fraud_detection: created, false_positive; note: enabled, disabled, blocked, fraud, chargeback; offline_payment: complete, refunded, fraud, chargeback; pending_refund: complete, processing; product: enabled, disabled; product_sale: nocapture, captured, settled, complete, void, refund, fraud, chargeback; sale: nocapture, captured, partialcapture, settled, refund, void, cancelled, fraud_alert, fraud, chargeback, pending_payment; salvage_transaction: salvaged, not_salvaged; shipping: nocapture, captured, settled, refund, void; subscription: active, trial, overdue, occurrence_limit, suspended, expired, replaced, cancelled, fraud, chargeback; subscription_renewal: captured, settled, refund, void, overdue, fraud, chargeback, error; tax: nocapture, captured, settled, refund, void, fraud, chargeback; transaction: captured, settled, refund, void, complete; trial: active, expired, expiredpaymentpartialdecline, expiredpaymentfulldecline, expiredpaymenterror, inactive, cancelled, fraud, chargeback.","type":"array","items":{"type":"string","enum":["unread","read","representment_none","representment_pending","representment_won","representment_lost","pending_receipt","received","fraud","chargeback","enabled","disabled","blocked","created","false_positive","complete","refunded","processing","nocapture","captured","settled","void","refund","partialcapture","cancelled","fraud_alert","pending_payment","salvaged","not_salvaged","active","trial","overdue","occurrence_limit","suspended","expired","replaced","error","expiredpaymentpartialdecline","expiredpaymentfulldecline","expiredpaymenterror","inactive"],"examples":["unread"]}},"campaign_filter":{"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"currency_filter":{"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax.","type":"array","items":{"type":"string","description":"Three-letter currency code. Letter case is ignored.","examples":["USD"]}},"gateway_filter":{"description":"Supported event types: chargeback, pending_refund, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"method_filter":{"description":"Filter by method. Supported values by event type: chargeback: sale_create, subscription_renew, trial_expire, salvage_transaction_process; fraud_detection: sale_create, subscription_renew, trial_expire, salvage_transaction_process; salvage_transaction: sale_partial, trial, subscription_renewal; transaction: sale_create, subscription_renew, trial_expire, pending_refund_process, salvage_transaction_process.","type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","sale_partial","trial","subscription_renewal","pending_refund_process"],"examples":["sale_create"]}},"shop_filter":{"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"metadata_filter":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name to match. Must contain at least one non-whitespace character.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value to match. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial. All distinct metadata names must match; multiple values for the same name are alternatives. Use METADATA_NAME_EXISTS to require the name regardless of value. At most 50 metadata filters. Each name is limited to 100 UTF-16 code units and each value to 255, including surrounding whitespace. The API checks these limits before trimming whitespace.","maxItems":50},"customer_group_filter":{"description":"Supported event types: customer, note.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product_filter":{"description":"Supported event types: customer, note, product_sale, subscription, subscription_renewal, trial.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"payment_type_filter":{"description":"Supported event types: discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial.","type":"array","items":{"type":"string","enum":["credit_card","paypal","check_direct","offline"],"examples":["credit_card"]}},"paypal_account_filter":{"description":"Supported event types: paypal_dispute, paypal_transaction, pending_refund.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"paypal_dispute_status_filter":{"description":"Supported event types: paypal_dispute.","type":"array","items":{"type":"string","enum":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"],"examples":["OPEN"]}},"paypal_dispute_reason_filter":{"description":"Supported event types: paypal_dispute.","type":"array","items":{"type":"string","enum":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"],"examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]}},"product_type_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","enum":["basic","subscription","subscription_only","trial","trial_only"],"examples":["basic"]}},"product_group_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"fulfillment_account_filter":{"description":"Supported event types: product, shipping.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"subscription_profile_filter":{"description":"Supported event types: product, subscription, subscription_renewal.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"project_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"payment_profile_filter":{"description":"Supported event types: salvage_transaction, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"shipping_status_filter":{"description":"Supported event types: shipping.","type":"array","items":{"type":"string","enum":["shipped","notshipped","merged","delivered","error"],"examples":["shipped"]}},"shipping_provider_filter":{"description":"Supported event types: shipping.","type":"array","items":{"type":"string","enum":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"],"examples":["apc"]}},"result_filter":{"description":"Supported event types: transaction.","type":"array","items":{"type":"string","enum":["approved","declined","error","held"],"examples":["approved"]}}},"description":"Optional filters for the selected account-event notation. The event type is the segment before the first dot in notation. Use only the fields and values documented for that event type; the API enforces applicability. Empty arrays apply no restriction."},"filter_function":{"type":"string","description":"A filter function allows you to further refine whether or not the voice agent is triggered based on an account event details. You can use a filter function to parse the specific accountevent details and determine whether the agent should be triggered. A filter function must respond with a string value of either 'pass' or 'fail'. The filter function must be created with an event_source of 'api_direct' in order to be accessible. Read more about using a filter function <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#filter-function\" target=\"_blank\">here</a>.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"If the trigger is account_event there are additional settings that can be configured including filtering specific events from using the agent.","allOf":[{"if":{"properties":{"delay_enabled":{"const":true}},"required":["delay_enabled"]},"then":{"required":["time_value","time_unit"]}}],"required":["notation"]},"limits":{"additionalProperties":false,"type":"object","description":"The maximum number of times the agent can be triggered for the same item. Read more at https://kb.revcent.com/en/tools/ai/voice-agents#max-runs-per-item","properties":{"max_calls_per_item":{"type":"integer","description":"Maximum calls for the same item, as a positive integer. Set to 1 to allow only one call. Counts greater than 1 require min_time_value and min_time_unit.","minimum":1,"examples":[1]},"min_time_value":{"type":"integer","description":"Positive whole-number interval between calls for the same item. Required when max_calls_per_item is greater than 1. For a single-call limit, omission uses 30; any supplied value must still be a positive integer.","minimum":1,"examples":[1]},"min_time_unit":{"type":"string","description":"Interval unit between calls for the same item. Required when max_calls_per_item is greater than 1. For a single-call limit, omission uses days.","enum":["hours","days"],"examples":["hours"]}},"required":["max_calls_per_item"],"allOf":[{"if":{"properties":{"max_calls_per_item":{"minimum":2}},"required":["max_calls_per_item"]},"then":{"required":["min_time_value","min_time_unit"]}}]}},"allOf":[{"if":{"properties":{"trigger":{"const":"account_event"}},"required":["trigger"]},"then":{"required":["account_event"]}}],"required":["trigger"]}},"type":"object","description":"The AI Voice agent settings.","required":["voice","instructions","system_actions"]},"third_party_integration_ai":{"type":"string","description":"The third-party integration for the realtime voice model. Must be a previously created user third party integration with the OpenAI site integration, using the model 'gpt-realtime-*'. At this time, only OpenAI with the model 'gpt-realtime-*' is supported third_party_integration_ai for AI Voice Agents.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration_voice":{"type":"string","description":"The third-party integration for voice phone calls. Must be a previously created user third party integration with the Twilio site integration, along with a selected Twilio phone number the AI Voice Agent will use. At this time, only Twilio is supported as the site integration for a third party integration voice.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","call_method","settings","third_party_integration_ai","third_party_integration_voice"],"type":"object","allOf":[{"if":{"properties":{"call_method":{"const":"outbound"}},"required":["call_method"]},"then":{"properties":{"settings":{"required":["trigger_settings"]}}}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_agent_id":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_agents/{ai_voice_agent_id}":{"get":{"summary":"Get An AI Voice Agent","description":"Retrieve an AI Voice Agent configuration, including its instructions, enabled actions, trigger settings and integrations.","operationId":"GetAIVoiceAgent","x-api-permission-description":"Allows the retrieval of AI Voice Agents.","x-api-permission":"ai_voice_agent:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/GetAIVoiceAgent.md","tags":["AI Voice Agents"],"parameters":[{"in":"path","name":"ai_voice_agent_id","description":"The AI Voice Agent ID.","required":true,"schema":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful response for GET /v2/ai_voice_agents/{ai_voice_agent_id}.","properties":{"api_call_id":{"description":"A 20 character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Creation time of the Voice Agent configuration, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","title":"AI Voice Agent ID","description":"20 character RevCent ID of the AI Voice Agent.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"name":{"type":"string","description":"The AI Voice Agent name.","examples":["My AI Voice Agent"]},"description":{"type":"string","description":"The AI Voice Agent description.","examples":["This is my AI Voice Agent."]},"enabled":{"type":"boolean","description":"Whether the AI Voice Agent is enabled."},"call_method":{"type":"string","description":"The AI Voice Agent call method.","examples":["inbound","outbound"]},"pre_agent_function":{"type":["object","null"],"additionalProperties":false,"description":"The configured custom function that runs before the voice agent and can supply additional values for Handlebars instruction templates. The function uses the api_direct trigger. Null when no accessible configured function is available. See <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#pre-agent-function\" target=\"_blank\">pre-agent function guidance</a>.","properties":{"id":{"description":"A 20 character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The pre-agent function name.","examples":["My AI Voice Pre-Agent Function"]}}},"settings":{"additionalProperties":false,"properties":{"voice":{"type":"string","description":"The configured AI voice, when available.","enum":["marin","cedar"],"examples":["marin","cedar"]},"instructions":{"additionalProperties":false,"properties":{"markdown":{"type":"string","description":"The complete saved instructions in Markdown. Handlebars expressions support caller-specific content, including values supplied by the pre-agent custom function. Instruction formatting and examples: <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions\" target=\"_blank\">Voice Agent instructions</a>. Conversation-flow guidance: <a href=\"https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow\" target=\"_blank\">Realtime prompting guide</a>.","examples":["Conversation Flow\n=================\n\nYou are an inbound voice agent. The customers first name is {{customer.first_name}}."]}},"type":"object","description":"The voice agent's configured instructions, when available."},"limits":{"additionalProperties":false,"properties":{"max_outbound_calls_per_customer":{"type":"integer","description":"The configured maximum number of outbound calls per customer, applicable when call_method is outbound.","minimum":0,"examples":[1]},"max_calls_per_day":{"type":"integer","description":"The configured maximum number of calls per day. Zero means no daily limit.","minimum":0,"examples":[0]},"max_duration":{"type":"integer","description":"The configured maximum call duration in minutes.","minimum":0,"examples":[15]}},"type":"object","description":"The configured call limits, when available. Individual limits may be omitted."},"system_actions":{"items":{"type":"string","description":"A configured action identified by its public API operation ID. Actions are opt-in; the corresponding operation describes what each action does.","enum":["GetCustomer","AddCustomerPaymentMethod","CreateCustomer","UpdatePendingSale","SearchCustomers","GetEmailTemplates","GetEmailTemplate","GetFunctions","GetFunction","TriggerFunction","InsertMetadata","CreateNote","GetPayPalTransaction","GetPendingRefund","GetProductSale","RefundProductSale","CreateSale","GetSale","VoidSale","AddFraudAlert","ProcessPendingSale","EstimateSale","GetShipment","EditShipment","RefundShipment","SendSMTPMessage","GetSMTPMessage","GetSubscriptionRenewal","RefundSubscriptionRenewal","GetSubscription","EditSubscription","ActivateSubscription","SuspendSubscription","CancelSubscription","RenewSubscription","GetTransaction","RefundTransaction","GetTrial","CancelTrial"],"examples":["GetCustomer","SearchCustomers"]},"type":"array","description":"Configured actions from the supported Voice Agent configuration list. Omitted when no action array is configured; a returned array may be empty."},"active_window":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the active window feature is enabled. When enabled, the AI Voice Agent will only be active during certain hours of the day specified by the user.","examples":[false]},"start_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will start being active. This is only relevant if the active window feature is enabled.","minimum":0,"examples":[9]},"end_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will stop being active. This is only relevant if the active window feature is enabled.","minimum":0,"examples":[17]},"timezone":{"type":"string","description":"The timezone in which the active window hours are specified.","examples":["America/New_York"]},"inactive_forward_number":{"type":"string","description":"The configured number for forwarding inbound calls during inactive hours. An empty value means no forwarding number is configured.","examples":["+1234567890"]}},"type":"object","description":"The configured hours during which the voice agent is active, when available. Individual settings may be omitted."},"trigger_settings":{"type":"object","description":"The configured outbound-call trigger settings, when available. Individual settings may be omitted.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The trigger for an outbound AI Voice Agent. Determines what triggers the AI Voice Agent to make an outbound call, either triggered based on an account event or on demand via API using the TriggerAIVoiceAgent operation.","enum":["account_event","on_demand"],"examples":["account_event","on_demand"]},"account_event":{"additionalProperties":false,"properties":{"notation":{"type":"string","description":"The voice agent's configured account-event notation, when present. May be empty or a historical value no longer accepted by POST. GET returns the configured value; use the POST schema when changing it. Notation formatting and event data are described at https://kb.revcent.com/en/revcent-account/events.","examples":["sale.created.success.paid"]},"delay_enabled":{"type":"boolean","description":"Whether a delay is configured before an account-event-triggered outbound call.","examples":[false]},"time_value":{"type":"integer","description":"The value for the time unit if the delay is enabled for the account event trigger.","minimum":0,"examples":[15]},"time_unit":{"type":"string","description":"The unit of time if the delay is enabled for the account event trigger.","enum":["minutes","hours","days"],"examples":["minutes"]},"filters":{"type":"object","additionalProperties":false,"description":"The voice agent's configured account-event filters. Applicability depends on the event item type identified by the first segment of the notation; each field lists its supported event types. These are configuration values, not GetAIVoiceAgents URL filters. GET may include historical values that do not satisfy current creation or editing rules; use the POST schema when changing filters. Omitted when no supported filter arrays are available.","properties":{"campaign_filter":{"type":"array","description":"Configured campaign filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","title":"Campaign ID","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"currency_filter":{"type":"array","description":"Configured currency filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["USD"]}},"customer_group_filter":{"type":"array","description":"Configured customer group filter values. Supported for customer, note account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}},"fulfillment_account_filter":{"type":"array","description":"Configured fulfillment account filter values. Supported for product, shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"gateway_filter":{"type":"array","description":"Configured gateway filter values. Supported for chargeback, pending_refund, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"metadata_filter":{"type":"array","description":"Configured metadata filter values. Supported for chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name that must be present on the event item.","minLength":1,"maxLength":100,"examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value that must match. Use 'METADATA_NAME_EXISTS' to require only that the metadata name exists, regardless of its value.","minLength":1,"maxLength":255,"examples":["Filter metadata value","METADATA_NAME_EXISTS"]}}},"maxItems":50},"method_filter":{"type":"array","description":"Configured method filter values. Supported for chargeback, fraud_detection, salvage_transaction, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["sale_create"]}},"payment_profile_filter":{"type":"array","description":"Configured payment profile filter values. Supported for salvage_transaction, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","title":"Payment Profile ID","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"payment_type_filter":{"type":"array","description":"Configured payment type filter values. Supported for discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["credit_card"]}},"product_filter":{"type":"array","description":"Configured product filter values. Supported for customer, note, product_sale, subscription, subscription_renewal, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"title":"Product ID","type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"result_filter":{"type":"array","description":"Configured result filter values. Supported for transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["approved"]}},"shipping_provider_filter":{"type":"array","description":"Configured shipping provider filter values. Supported for shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["ups"]}},"shipping_status_filter":{"type":"array","description":"Configured shipping status filter values. Supported for shipping account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["shipped"]}},"shop_filter":{"type":"array","description":"Configured shop filter values. Supported for chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"status_filter":{"type":"array","description":"Configured status filter values. Supported for ai_memo, chargeback, check_direct, customer, fraud_detection, note, offline_payment, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["pending_payment"]}},"subscription_profile_filter":{"type":"array","description":"Configured subscription profile filter values. Supported for product, subscription, subscription_renewal account events. Omitted when not configured as an array; a returned array may be empty.","items":{"type":"string","description":"A 20-character public ID in the configured filter.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"ai_assistant_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured ai assistant filter values. Supported for ai_memo account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_account_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal account filter values. Supported for paypal_dispute, paypal_transaction, pending_refund account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_dispute_status_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal dispute status filter values. Supported for paypal_dispute account events. Omitted when not configured as an array; a returned array may be empty."},"paypal_dispute_reason_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured paypal dispute reason filter values. Supported for paypal_dispute account events. Omitted when not configured as an array; a returned array may be empty."},"product_type_filter":{"type":"array","items":{"type":"string","description":"The saved filter value. May be empty or a historical value no longer accepted by POST; GET preserves the configured text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product type filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."},"product_group_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured product group filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."},"project_filter":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20-character public ID in the configured filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Configured project filter values. Supported for product account events. Omitted when not configured as an array; a returned array may be empty."}}},"filter_function":{"type":"object","additionalProperties":false,"description":"The configured custom function that evaluates account-event details and returns pass or fail to determine whether the voice agent is triggered. The function uses the api_direct trigger. Omitted when no accessible configured function is available. See <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#filter-function\" target=\"_blank\">filter function guidance</a>.","properties":{"id":{"description":"A 20 character Function ID.","type":"string","title":"Function ID","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"name":{"type":"string","description":"The filter function name.","examples":["My AI Voice Filter Function"]}}}},"type":"object","description":"The configured account-event trigger options, when available."},"limits":{"additionalProperties":false,"type":"object","description":"The maximum number of times the agent can be triggered for the same item. Read more at https://kb.revcent.com/en/tools/ai/voice-agents#max-runs-per-item","properties":{"max_calls_per_item":{"type":"integer","description":"The configured maximum number of calls for the same event item.","minimum":0,"examples":[1]},"min_time_value":{"type":"integer","description":"If max_calls_per_item is greater than 1, the value for the time unit that must transpire between runs for the same item.","minimum":0,"examples":[1]},"min_time_unit":{"type":"string","description":"If max_calls_per_item is greater than 1, the unit of time that must transpire between runs for the same item.","enum":["hours","days"],"examples":["hours"]}}}}}},"type":["object","null"],"description":"The voice agent's configured settings. Null when settings are unavailable. An object may contain only some settings or be empty."},"third_party_integration_ai":{"title":"Configured AI Integration","type":["object","null"],"additionalProperties":false,"description":"The configured AI integration. Null when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"The 20-character public ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20-character public ID of the AI provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The AI provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"third_party_integration_voice":{"title":"Configured voice Integration","type":["object","null"],"additionalProperties":false,"description":"The configured voice integration. Null when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"The 20-character public ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My Voice Integration"]},"third_party":{"type":"object","description":"The voice provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20-character public ID of the voice provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The voice provider name.","examples":["Twilio"]}}}}},"updated_date_unix":{"description":"Last update time of the Voice Agent configuration, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetAIVoiceAgentSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit An AI Voice Agent","description":"Update an AI Voice Agent configuration. Include only the properties you want to change.","operationId":"EditAIVoiceAgent","x-api-permission-description":"Allows the editing of an AI Voice Agent.","x-api-permission":"ai_voice_agent:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/EditAIVoiceAgent.md","tags":["AI Voice Agents"],"parameters":[{"in":"path","name":"ai_voice_agent_id","description":"The AI Voice Agent ID","required":true,"schema":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Voice Agent name.","examples":["Example"]},"description":{"type":"string","description":"The AI Voice Agent description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Voice Agent is enabled."},"call_method":{"type":"string","description":"The AI Voice Agent call method.","enum":["inbound","outbound"],"examples":["inbound"]},"pre_agent_function":{"type":"string","description":"The pre-agent function that will be called before the AI Voice Agent is triggered. The pre-agent function can be used to generate additional content for within the agent instructions when compiling using handlebars syntax. The pre agent function must be created with a trigger of 'api_direct' in order to be accessible to an AI voice agent.<br><br>Read more about the pre-agent function <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#pre-agent-function\" target=\"_blank\">here</a>. To remove a pre agent function submit an empty string for this value.","minLength":0,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"settings":{"additionalProperties":false,"properties":{"voice":{"type":"string","description":"The AI voice to be used for the AI Voice Agent. The available voices depend on the list of available voices from OpenAI's realtime voice model.","enum":["marin","cedar"],"examples":["marin"]},"instructions":{"additionalProperties":false,"properties":{"markdown":{"type":"string","description":"The AI voice Agent instructions in markdown format. Agent instructions are generated for each call using the handlebars sytax, allowing for dynamic content based on the specific caller.<br><br>It is recommended to read more about creating the instructions markdown, including formatting, at <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions\" target=\"_blank\">https://kb.revcent.com/en/tools/ai/voice-agents#agent-instructions</a>.<br><br>Also, OpenAI has a section on conversation flow usage in instruction markdown at <a href=\"https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow\" target=\"_blank\">https://developers.openai.com/cookbook/examples/realtime_prompting_guide#conversation-flow</a>","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"The AI Voice Agent instructions."},"limits":{"additionalProperties":false,"properties":{"max_outbound_calls_per_customer":{"type":"integer","description":"Maximum outbound calls allowed per customer, as a nonnegative integer. On creation, omission of the entire limits object uses 1; omission of this field within a supplied limits object uses 0. Omission on edit preserves the current value.","minimum":0,"examples":[0]},"max_calls_per_day":{"type":"integer","description":"The maximum number of calls allowed per day. Default is 0. 0 means no limit.","minimum":0,"examples":[0]},"max_duration":{"type":"integer","description":"Maximum call duration in whole minutes, from 0 through 15. On creation, omission of the entire limits object uses 15; omission of this field within a supplied limits object uses 0. Omission on edit preserves the current value.","minimum":0,"maximum":15,"examples":[0]}},"type":"object","description":"Limits to be placed on the AI Voice Agent regardless of inbound or outbound calls."},"system_actions":{"items":{"type":"string","description":"API operation ID this Voice Agent may call. Actions are opt-in. Use AddCustomerPaymentMethod for card payment-method collection; retired action names are not accepted or aliased.","enum":["GetCustomer","AddCustomerPaymentMethod","CreateCustomer","UpdatePendingSale","SearchCustomers","GetEmailTemplates","GetEmailTemplate","GetFunctions","GetFunction","TriggerFunction","InsertMetadata","CreateNote","GetPayPalTransaction","GetPendingRefund","GetProductSale","RefundProductSale","CreateSale","GetSale","VoidSale","AddFraudAlert","ProcessPendingSale","EstimateSale","GetShipment","EditShipment","RefundShipment","SendSMTPMessage","GetSMTPMessage","GetSubscriptionRenewal","RefundSubscriptionRenewal","GetSubscription","EditSubscription","ActivateSubscription","SuspendSubscription","CancelSubscription","RenewSubscription","GetTransaction","RefundTransaction","GetTrial","CancelTrial"],"examples":["GetCustomer"]},"type":"array","description":"System actions are API operations that can be called by AI during a call. It is highly recommended to only include system actions that may be needed by the AI Voice Agent depending on its purpose."},"active_window":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the active window feature is enabled. When enabled, the AI Voice Agent will only be active during certain hours of the day specified by the user."},"start_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will start being active. This is only relevant if the active window feature is enabled. Must be a whole hour from 0 through 23 whenever supplied, including when the active window is disabled.","minimum":0,"maximum":23,"examples":[0]},"end_hour":{"type":"integer","description":"The hour at which the AI Voice Agent will stop being active. This is only relevant if the active window feature is enabled. Must be a whole hour from 0 through 23 whenever supplied, including when the active window is disabled.","minimum":0,"maximum":23,"examples":[0]},"timezone":{"type":"string","description":"The timezone in which the active window hours are specified.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"inactive_forward_number":{"type":"string","description":"If set, inbound calls will be forwarded to this number during inactive hours. Leave blank to not forward and simply hangup with a brief message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"If you wish to have this agent active only within certain hours during the day. Useful for limiting/preventing late outbound calls."},"trigger_settings":{"type":"object","description":"Trigger settings, which only applies to call_method = 'outbound'.","additionalProperties":false,"properties":{"trigger":{"type":"string","description":"The trigger for an outbound AI Voice Agent. Determines what triggers the AI Voice Agent to make an outbound call, either triggered based on an account event or on demand via API using the TriggerAIVoiceAgent operation.","enum":["account_event","on_demand"],"examples":["account_event"]},"account_event":{"additionalProperties":false,"properties":{"notation":{"type":"string","description":"The notation for the account event trigger. Read more at https://kb.revcent.com/en/revcent-account/events to understand notation formatting and their associated event data.","examples":["sale.created.success.paid"],"enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened"]},"delay_enabled":{"type":"boolean","description":"Whether to set a delay before the AI Voice Agent makes the outbound call. Useful when you may want to give the customer time to checkout after a failed sale before calling them, for example."},"time_value":{"type":"integer","description":"The value for the time unit if the delay is enabled for the account event trigger.","minimum":0,"examples":[0]},"time_unit":{"type":"string","description":"The unit of time if the delay is enabled for the account event trigger.","enum":["minutes","hours","days"],"examples":["minutes"]},"filters":{"type":"object","additionalProperties":false,"properties":{"ai_assistant_filter":{"description":"Supported event types: ai_memo.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"status_filter":{"description":"Filter by status. Supported values by event type: ai_memo: unread, read; chargeback: representment_none, representment_pending, representment_won, representment_lost; check_direct: pending_receipt, received, fraud, chargeback; customer: enabled, disabled, blocked, fraud, chargeback; fraud_detection: created, false_positive; note: enabled, disabled, blocked, fraud, chargeback; offline_payment: complete, refunded, fraud, chargeback; pending_refund: complete, processing; product: enabled, disabled; product_sale: nocapture, captured, settled, complete, void, refund, fraud, chargeback; sale: nocapture, captured, partialcapture, settled, refund, void, cancelled, fraud_alert, fraud, chargeback, pending_payment; salvage_transaction: salvaged, not_salvaged; shipping: nocapture, captured, settled, refund, void; subscription: active, trial, overdue, occurrence_limit, suspended, expired, replaced, cancelled, fraud, chargeback; subscription_renewal: captured, settled, refund, void, overdue, fraud, chargeback, error; tax: nocapture, captured, settled, refund, void, fraud, chargeback; transaction: captured, settled, refund, void, complete; trial: active, expired, expiredpaymentpartialdecline, expiredpaymentfulldecline, expiredpaymenterror, inactive, cancelled, fraud, chargeback.","type":"array","items":{"type":"string","enum":["unread","read","representment_none","representment_pending","representment_won","representment_lost","pending_receipt","received","fraud","chargeback","enabled","disabled","blocked","created","false_positive","complete","refunded","processing","nocapture","captured","settled","void","refund","partialcapture","cancelled","fraud_alert","pending_payment","salvaged","not_salvaged","active","trial","overdue","occurrence_limit","suspended","expired","replaced","error","expiredpaymentpartialdecline","expiredpaymentfulldecline","expiredpaymenterror","inactive"],"examples":["unread"]}},"campaign_filter":{"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_dispute, paypal_transaction, pending_refund, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"currency_filter":{"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, pending_refund, sale, tax.","type":"array","items":{"type":"string","description":"Three-letter currency code. Letter case is ignored.","examples":["USD"]}},"gateway_filter":{"description":"Supported event types: chargeback, pending_refund, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"method_filter":{"description":"Filter by method. Supported values by event type: chargeback: sale_create, subscription_renew, trial_expire, salvage_transaction_process; fraud_detection: sale_create, subscription_renew, trial_expire, salvage_transaction_process; salvage_transaction: sale_partial, trial, subscription_renewal; transaction: sale_create, subscription_renew, trial_expire, pending_refund_process, salvage_transaction_process.","type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","sale_partial","trial","subscription_renewal","pending_refund_process"],"examples":["sale_create"]}},"shop_filter":{"description":"Supported event types: chargeback, check_direct, discount, fraud_detection, offline_payment, paypal_dispute, paypal_transaction, product, product_sale, sale, shipping, subscription_renewal, tax, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"metadata_filter":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name to match. Must contain at least one non-whitespace character.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value to match. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"]},"description":"Supported event types: chargeback, check_direct, customer, discount, fraud_detection, note, offline_payment, paypal_transaction, pending_refund, product, product_sale, sale, salvage_transaction, shipping, subscription, subscription_renewal, tax, transaction, trial. All distinct metadata names must match; multiple values for the same name are alternatives. Use METADATA_NAME_EXISTS to require the name regardless of value. At most 50 metadata filters. Each name is limited to 100 UTF-16 code units and each value to 255, including surrounding whitespace. The API checks these limits before trimming whitespace.","maxItems":50},"customer_group_filter":{"description":"Supported event types: customer, note.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product_filter":{"description":"Supported event types: customer, note, product_sale, subscription, subscription_renewal, trial.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"payment_type_filter":{"description":"Supported event types: discount, pending_refund, product_sale, sale, shipping, subscription, subscription_renewal, tax, trial.","type":"array","items":{"type":"string","enum":["credit_card","paypal","check_direct","offline"],"examples":["credit_card"]}},"paypal_account_filter":{"description":"Supported event types: paypal_dispute, paypal_transaction, pending_refund.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"paypal_dispute_status_filter":{"description":"Supported event types: paypal_dispute.","type":"array","items":{"type":"string","enum":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"],"examples":["OPEN"]}},"paypal_dispute_reason_filter":{"description":"Supported event types: paypal_dispute.","type":"array","items":{"type":"string","enum":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"],"examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]}},"product_type_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","enum":["basic","subscription","subscription_only","trial","trial_only"],"examples":["basic"]}},"product_group_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"fulfillment_account_filter":{"description":"Supported event types: product, shipping.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"subscription_profile_filter":{"description":"Supported event types: product, subscription, subscription_renewal.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"project_filter":{"description":"Supported event types: product.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"payment_profile_filter":{"description":"Supported event types: salvage_transaction, transaction.","type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an item in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"shipping_status_filter":{"description":"Supported event types: shipping.","type":"array","items":{"type":"string","enum":["shipped","notshipped","merged","delivered","error"],"examples":["shipped"]}},"shipping_provider_filter":{"description":"Supported event types: shipping.","type":"array","items":{"type":"string","enum":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"],"examples":["apc"]}},"result_filter":{"description":"Supported event types: transaction.","type":"array","items":{"type":"string","enum":["approved","declined","error","held"],"examples":["approved"]}}},"description":"Optional filters for the selected account-event notation. The event type is the segment before the first dot in notation. Use only the fields and values documented for that event type; the API enforces applicability. Empty arrays apply no restriction."},"filter_function":{"type":"string","description":"A filter function allows you to further refine whether or not the voice agent is triggered based on an account event details. You can use a filter function to parse the specific accountevent details and determine whether the agent should be triggered. A filter function must respond with a string value of either 'pass' or 'fail'. The filter function must be created with an event_source of 'api_direct' in order to be accessible. Read more about using a filter function <a href=\"https://kb.revcent.com/en/tools/ai/voice-agents#filter-function\" target=\"_blank\">here</a>. To remove a filter function submit an empty string for this value.","minLength":0,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","description":"If the trigger is account_event there are additional settings that can be configured including filtering specific events from using the agent.","allOf":[{"if":{"properties":{"delay_enabled":{"const":true}},"required":["delay_enabled"]},"then":{"required":["time_value","time_unit"]}}],"required":["notation"]},"limits":{"additionalProperties":false,"type":"object","description":"The maximum number of times the agent can be triggered for the same item. Read more at https://kb.revcent.com/en/tools/ai/voice-agents#max-runs-per-item","properties":{"max_calls_per_item":{"type":"integer","description":"Maximum calls for the same item, as a positive integer. Set to 1 to allow only one call. Counts greater than 1 require min_time_value and min_time_unit.","minimum":1,"examples":[1]},"min_time_value":{"type":"integer","description":"Positive whole-number interval between calls for the same item. Required when max_calls_per_item is greater than 1. For a single-call limit, omission uses 30; any supplied value must still be a positive integer.","minimum":1,"examples":[1]},"min_time_unit":{"type":"string","description":"Interval unit between calls for the same item. Required when max_calls_per_item is greater than 1. For a single-call limit, omission uses days.","enum":["hours","days"],"examples":["hours"]}},"required":["max_calls_per_item"],"allOf":[{"if":{"properties":{"max_calls_per_item":{"minimum":2}},"required":["max_calls_per_item"]},"then":{"required":["min_time_value","min_time_unit"]}}]}}}},"type":"object","description":"The AI Voice agent settings."},"third_party_integration_ai":{"type":"string","description":"The third-party integration for the realtime voice model. Must be a previously created user third party integration with the OpenAI site integration, using the model 'gpt-realtime-*'. At this time, only OpenAI with the model 'gpt-realtime-*' is supported third_party_integration_ai for AI Voice Agents.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration_voice":{"type":"string","description":"The third-party integration for voice phone calls. Must be a previously created user third party integration with the Twilio site integration, along with a selected Twilio phone number the AI Voice Agent will use. At this time, only Twilio is supported as the site integration for a third party integration voice.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_agent_id":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_agents/{ai_voice_agent_id}/trigger":{"post":{"summary":"Trigger An AI Voice Agent","description":"Trigger a specific AI Voice Agent using the AI Voice Agent ID and trigger path. Note: Only AI Voice Agents with a Call Method = 'Outbound' and Trigger = 'On Demand' can be triggered via API. Triggering an AI Voice Agent will immediately generate an outbound AI Voice Call that will dial the customer phone number associated with the item.","operationId":"TriggerAIVoiceAgent","x-api-permission-description":"Allows the triggering of a specific AI Voice Agent.","x-api-permission":"ai_voice_agent:trigger","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/TriggerAIVoiceAgent.md","tags":["AI Voice Agents"],"parameters":[{"in":"path","name":"ai_voice_agent_id","description":"The AI Voice Agent ID","required":true,"schema":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"source_type":{"type":"string","description":"Must equal 'item'","examples":["item"],"enum":["item"]},"item_type":{"type":"string","description":"Specify the item type.","examples":["sale"],"enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"]},"item_id":{"type":"string","description":"Provide the ID of the item corresponding to the item_type.","minLength":20,"maxLength":20,"examples":["pgm1q7yjKjF7qyAM7EXK"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["source_type","item_type","item_id"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Confirmation that the AI Voice Agent was triggered for the specified item.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_call_id":{"description":"The 20 character RevCent ID of the voice call. Included only when a call ID is available; otherwise omitted.","type":"string","title":"AI Voice Call ID","minLength":20,"maxLength":20,"examples":["vR8ZMaVrK4F9n02RB618"]},"ai_voice_agent_id":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["AI Voice Agent triggered."]},"item_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the item supplied to trigger the call. Included on success.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_type":{"type":"string","enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"],"description":"The type of item supplied to trigger the call. Included on success.","examples":["sale"]},"source_type":{"type":"string","enum":["item"],"description":"Always item for calls triggered by this operation. Included on success.","examples":["item"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Invalid request or the selected resource could not be triggered.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"The selected AI Voice Agent could not be triggered.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","enum":[0],"examples":[0]},"ai_voice_agent_id":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"message":{"type":"string","description":"Explanation of the trigger failure, or \"AI error occurred.\" when no explanation is available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","enum":["AI Voice Agent error occurred."],"examples":["AI Voice Agent error occurred."]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_agents/{ai_voice_agent_id}/delete":{"post":{"summary":"Delete An AI Voice Agent","description":"Delete a specific AI voice agent using the AI voice agent ID and delete path.","operationId":"DeleteAIVoiceAgent","x-api-permission-description":"Allows the deletion of an AI Voice Agent.","x-api-permission":"ai_voice_agent:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteAIVoiceAgent.md","tags":["AI Voice Agents"],"parameters":[{"in":"path","name":"ai_voice_agent_id","description":"The AI voice agent ID","required":true,"schema":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_agent_id":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]},"result":{"type":"string","examples":["AI voice agent deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_calls":{"get":{"summary":"Get AI Voice Calls","description":"Retrieve a paginated list of AI Voice Calls, including call outcomes, related resources and payment-attempt summaries.","operationId":"GetAIVoiceCalls","x-api-permission-description":"Allows the retrieval of AI Voice Calls.","x-api-permission":"ai_voice_call:retrieve","x-ai-options":["mcp"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The difference between date_start and date_end cannot exceed a two (2) day period.","x-kb-link":"https://kb.revcent.com/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/GetAIVoiceCalls.md","tags":["AI Voice Calls"],"parameters":[{"description":"Inclusive start of the date range as a Unix timestamp in seconds. The range may span at most two days (172800 seconds).","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive end of the date range as a Unix timestamp in seconds. Exactly two days after date_start is allowed.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of results per page, from 1 through 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 through 20. Page 0 is treated as page 1.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter calls by one or more associated AI Voice Agents, using their 20 character RevCent IDs.","name":"ai_voice_agent_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"AI Voice Agent ID","description":"A 20 character AI Voice Agent ID.","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}},"style":"form","explode":true},{"name":"method_filter","in":"query","description":"To filter AI Voice Calls by inbound or outbound call method.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["inbound","outbound"],"examples":["inbound","outbound"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"To filter AI Voice Calls based on status.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["active","completed","cancelled","has_payment_attempt","voice_mail","busy","no_answer","robocall","error"],"examples":["active","completed","cancelled","has_payment_attempt","voice_mail","busy","no_answer","robocall","error"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of AI Voice Calls matching the requested date range and filters.","properties":{"api_call_id":{"type":"string","description":"20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The current number of items in the results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The current page for the items in the results.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","title":"AI Voice Call ID","description":"20 character RevCent ID of the AI Voice Call.","minLength":20,"maxLength":20,"examples":["vR8ZMaVrK4F9n02RB618"]},"ai_model":{"type":"string","description":"The AI model associated with the call.","examples":["gpt-realtime-2"]},"ai_source":{"type":"string","description":"The AI source associated with the call.","examples":["open_ai"]},"ai_source_session_id":{"type":"string","description":"The AI source session ID associated with the call.","examples":["sess_CDJnob4iRviJ"]},"call_duration_ms":{"description":"The total call duration in milliseconds.","type":"integer","minimum":0,"examples":[10323]},"call_method":{"type":"string","description":"The call method, either inbound or outbound.","enum":["inbound","outbound"],"examples":["inbound","outbound"]},"call_source":{"type":"string","description":"The call source, i.e. the voice provider.","examples":["twilio"]},"call_source_account_id":{"type":"string","description":"The call source account ID.","examples":["ACa5114e"]},"call_source_call_id":{"type":"string","description":"The call source call ID specific to the call.","examples":["CA17c422cbd1c"]},"call_source_number":{"type":"string","description":"Phone number associated with the call provider.","examples":["+12345678901"]},"call_source_session_id":{"type":"string","description":"The call source session ID specific to the call.","examples":["MZb302ca4c290"]},"from":{"type":"string","description":"Phone number from which the call originated.","examples":["+12345678901"]},"to":{"type":"string","description":"Phone number the call was directed to.","examples":["+19876543210"]},"customer":{"type":"object","description":"The customer associated with the call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer country in three letter ISO 3166-1 alpha-3 format.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"source_type":{"type":"string","description":"Returned as item when the call is associated with a supported resource. Returned together with item_type and item_id.","enum":["item"],"examples":["item"]},"item_type":{"type":"string","description":"Type of resource associated with the call. Returned together with source_type and item_id.","enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"],"examples":["sale"]},"item_id":{"type":"string","description":"20 character RevCent ID of the associated resource identified by item_type. Returned together with source_type and item_type.","minLength":20,"maxLength":20,"examples":["jF7qyAM7EXKpgm1q7yjK"]},"status":{"type":"string","description":"The current AI Voice Call status.","enum":["Active","Completed","Cancelled","No Answer","Busy","Voicemail","Robocall","Error"],"examples":["Active","Cancelled","Error"]},"trigger":{"additionalProperties":false,"properties":{"source":{"type":"string","description":"How the voice call was triggered. An empty string means the trigger source is unknown or unavailable.","enum":["","api","account_event","on_demand","inbound_call"],"examples":["api","account_event","inbound_call"]},"notation":{"type":"string","description":"If the source is 'account_event', the account event notation indicating the event that triggered the call.","examples":["sale.created.failed.declined"]},"api_call":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_account":{"type":"object","additionalProperties":false,"description":"The API account associated with the API call.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the API account.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}}}},"type":"object","description":"The API call associated with the voice call, when available. May be returned for any trigger source."}},"type":"object","description":"How the AI Voice Call was initiated, with related event or API-call information when available."},"third_party_integration_ai":{"title":"Configured Integration","type":"object","additionalProperties":false,"description":"The configured AI integration associated with the call, when available. Omitted when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"third_party_integration_voice":{"title":"Configured Integration","type":"object","additionalProperties":false,"description":"The configured voice integration associated with the call, when available. Omitted when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My Voice Integration"]},"third_party":{"type":"object","description":"The voice provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The provider name.","examples":["Twilio"]}}}}},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"ai_voice_agent":{"additionalProperties":false,"description":"The voice agent associated with the call, when available. Omitted when unavailable.","properties":{"id":{"description":"20 character RevCent ID.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The associated AI Voice Agent name.","type":"string","examples":["Example"]}},"type":"object"},"error":{"description":"A consumer-facing message returned when the call reports an error.","type":"string","const":"An error occurred during the voice call.","examples":["An error occurred during the voice call."]},"call_transferred":{"description":"True when the call was transferred and a destination is available. Returned together with call_transferred_to; otherwise both fields are omitted.","type":"boolean","const":true,"examples":[true]},"call_transferred_to":{"description":"The transfer destination phone number. Returned together with call_transferred when a transfer destination is available; otherwise both fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_attempts":{"description":"The retrievable transactions attempted during the voice call. An empty array means no payment attempts are available to return.","items":{"additionalProperties":false,"properties":{"amount":{"description":"Attempted amount in major currency units, such as 29.85 for USD 29.85. Use this transaction ID with GetTransaction and read iso_currency to determine the currency. Omitted when unavailable; a returned zero is an actual zero amount.","type":"number","examples":[0]},"approved":{"description":"Whether the payment attempt was approved.","type":"boolean"},"created_date_unix":{"description":"The payment attempt's transaction creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1893499200]},"declined":{"description":"Whether the payment attempt was declined.","type":"boolean"},"error":{"description":"Whether the payment attempt resulted in an error.","type":"boolean"},"id":{"description":"20 character RevCent ID of the Transaction. Use this ID with GetTransaction to retrieve the transaction, including its iso_currency.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array"}}},"type":"array","maxItems":25,"description":"The resources returned by the request."},"total_count":{"description":"The total number of retrievable calls matching the supplied date range and all active filters.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total number of pages of retrievable calls matching the supplied date range and all active filters, for the requested limit.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAIVoiceCallsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_calls/{ai_voice_call_id}":{"get":{"summary":"Get An AI Voice Call","description":"Retrieve a specific AI Voice Call, including its outcome, related resources and payment-attempt summaries.","operationId":"GetAIVoiceCall","x-api-permission-description":"Allows the retrieval of AI Voice Calls.","x-api-permission":"ai_voice_call:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/GetAIVoiceCall.md","tags":["AI Voice Calls"],"parameters":[{"in":"path","name":"ai_voice_call_id","description":"20 character RevCent ID of the AI Voice Call to retrieve.","required":true,"schema":{"type":"string","title":"AI Voice Call ID","description":"A 20 character AI Voice Call ID.","minLength":20,"maxLength":20,"examples":["vR8ZMaVrK4F9n02RB618"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"title":"GetAIVoiceCallSuccessResponse","description":"Details of the requested AI Voice Call, including its outcome, related resources and payment-attempt summaries.","properties":{"api_call_id":{"type":"string","description":"20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","title":"AI Voice Call ID","description":"20 character RevCent ID of the AI Voice Call.","minLength":20,"maxLength":20,"examples":["vR8ZMaVrK4F9n02RB618"]},"ai_model":{"type":"string","description":"The AI model associated with the call.","examples":["gpt-realtime-2"]},"ai_source":{"type":"string","description":"The AI source associated with the call.","examples":["open_ai"]},"ai_source_session_id":{"type":"string","description":"The AI source session ID associated with the call.","examples":["sess_CDJnob4iRviJ"]},"call_duration_ms":{"description":"The total call duration in milliseconds.","type":"integer","minimum":0,"examples":[10323]},"call_method":{"type":"string","description":"The call method, either inbound or outbound.","enum":["inbound","outbound"],"examples":["inbound","outbound"]},"call_source":{"type":"string","description":"The call source, i.e. the voice provider.","examples":["twilio"]},"call_source_account_id":{"type":"string","description":"The call source account ID.","examples":["ACa5114e"]},"call_source_call_id":{"type":"string","description":"The call source call ID specific to the call.","examples":["CA17c422cbd1c"]},"call_source_number":{"type":"string","description":"Phone number associated with the call provider.","examples":["+12345678901"]},"call_source_session_id":{"type":"string","description":"The call source session ID specific to the call.","examples":["MZb302ca4c290"]},"from":{"type":"string","description":"Phone number from which the call originated.","examples":["+12345678901"]},"to":{"type":"string","description":"Phone number the call was directed to.","examples":["+19876543210"]},"customer":{"type":"object","description":"The customer associated with the call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer country in three letter ISO 3166-1 alpha-3 format.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"source_type":{"type":"string","description":"Returned as item when the call is associated with a supported resource. Returned together with item_type and item_id.","enum":["item"],"examples":["item"]},"item_type":{"type":"string","description":"Type of resource associated with the call. Returned together with source_type and item_id.","enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"],"examples":["sale"]},"item_id":{"type":"string","description":"20 character RevCent ID of the associated resource identified by item_type. Returned together with source_type and item_type.","minLength":20,"maxLength":20,"examples":["jF7qyAM7EXKpgm1q7yjK"]},"status":{"type":"string","description":"The current AI Voice Call status.","enum":["Active","Completed","Cancelled","No Answer","Busy","Voicemail","Robocall","Error"],"examples":["Active","Cancelled","Error"]},"trigger":{"additionalProperties":false,"properties":{"source":{"type":"string","description":"How the voice call was triggered. An empty string means the trigger source is unknown or unavailable.","enum":["","api","account_event","on_demand","inbound_call"],"examples":["api","account_event","inbound_call"]},"notation":{"type":"string","description":"If the source is 'account_event', the account event notation indicating the event that triggered the call.","examples":["sale.created.failed.declined"]},"api_call":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_account":{"type":"object","additionalProperties":false,"description":"The API account associated with the API call.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the API account.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}}},"ai_assistant":{"additionalProperties":false,"description":"The AI Assistant associated with the related API call, when available. Omitted when unavailable.","properties":{"id":{"description":"20 character RevCent ID of the AI Assistant.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the AI Assistant.","type":"string","examples":["Example"]}},"type":"object"}},"type":"object","description":"The API call associated with the voice call, when available. May be returned for any trigger source."}},"type":"object","description":"How the AI Voice Call was initiated, with related event or API-call information when available."},"third_party_integration_ai":{"title":"Configured Integration","type":"object","additionalProperties":false,"description":"The configured AI integration associated with the call, when available. Omitted when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My AI Integration"]},"third_party":{"type":"object","description":"The AI provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The provider name.","examples":["OpenAI","Google Gemini","XAI"]}}}}},"third_party_integration_voice":{"title":"Configured Integration","type":"object","additionalProperties":false,"description":"The configured voice integration associated with the call, when available. Omitted when the integration or its provider is unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the configured integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Configured Integration Name","type":"string","description":"The name assigned to the configured integration.","examples":["My Voice Integration"]},"third_party":{"type":"object","description":"The voice provider used by the configured integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the provider.","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Provider Name","type":"string","description":"The provider name.","examples":["Twilio"]}}}}},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"ai_voice_agent":{"additionalProperties":false,"description":"The voice agent associated with the call, when available. Omitted when unavailable.","properties":{"id":{"description":"20 character RevCent ID.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The associated AI Voice Agent name.","type":"string","examples":["Example"]}},"type":"object"},"error":{"description":"A consumer-facing message returned when the call reports an error.","type":"string","const":"An error occurred during the voice call.","examples":["An error occurred during the voice call."]},"call_transferred":{"description":"True when the call was transferred and a destination is available. Returned together with call_transferred_to; otherwise both fields are omitted.","type":"boolean","const":true,"examples":[true]},"call_transferred_to":{"description":"The transfer destination phone number. Returned together with call_transferred when a transfer destination is available; otherwise both fields are omitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_attempts":{"description":"The retrievable transactions attempted during the voice call. An empty array means no payment attempts are available to return.","items":{"additionalProperties":false,"properties":{"amount":{"description":"Attempted amount in major currency units, such as 29.85 for USD 29.85. Use this transaction ID with GetTransaction and read iso_currency to determine the currency. Omitted when unavailable; a returned zero is an actual zero amount.","type":"number","examples":[0]},"approved":{"description":"Whether the payment attempt was approved.","type":"boolean"},"created_date_unix":{"description":"The payment attempt's transaction creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1893499200]},"declined":{"description":"Whether the payment attempt was declined.","type":"boolean"},"error":{"description":"Whether the payment attempt resulted in an error.","type":"boolean"},"id":{"description":"20 character RevCent ID of the Transaction. Use this ID with GetTransaction to retrieve the transaction, including its iso_currency.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array"}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_snippets":{"get":{"summary":"Get AI Voice Snippets","description":"Retrieve a paginated list of AI Voice Snippets in your account, including their full content, ordered by creation time with the newest first.","operationId":"GetAIVoiceSnippets","x-api-permission-description":"Allows the retrieval of AI Voice Snippets.","x-api-permission":"ai_voice_snippet:retrieve","x-ai-options":["mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents#ai-voice-snippets","x-kb-name":"AI Voice Snippets","x-md-link":"markdown/mcp/operation/GetAIVoiceSnippets.md","tags":["AI Voice Snippets"],"parameters":[{"description":"Required number of results per page, from 1 through 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 through 20. Page 0 is treated as page 1.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of AI Voice Snippets with their full content.","properties":{"api_call_id":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of snippets returned in results on this page.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The current page number. A requested page of 0 is returned as 1.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the AI Voice Snippet was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the AI Voice Snippet.","type":"string","title":"AI Voice Snippet ID","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]},"name":{"type":"string","description":"The name of the AI Voice Snippet.","examples":["supervisor_escalation_snippet"]},"description":{"type":"string","description":"A description of the AI Voice Snippet.","examples":["Instructions on what number to forward to if customer wants to escalate."]},"enabled":{"type":"boolean","description":"Whether the AI Voice Snippet is enabled."},"content":{"type":"string","description":"The full AI Voice Snippet text, which may contain Handlebars template expressions.","examples":["#Supervisor Escalation\n-If the customer wants to speak to a supervisor, say \"OK {{customer.first_name}}, please hold while I connect you to a supervisor.\", wait a few seconds and then forward the call to 123-456-7890"]},"updated_date_unix":{"description":"Unix timestamp in seconds when the AI Voice Snippet was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The AI Voice Snippets returned on this page, including their full content."},"total_count":{"minimum":0,"description":"Total number of retrievable AI Voice Snippets in your account.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"Total number of result pages, calculated by dividing total_count by the requested limit and rounding up. Only pages 1 through 20 can be requested.","type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAIVoiceSnippetsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An AI Voice Snippet","description":"Create an AI Voice Snippet, which will issue a unique AI Voice Snippet ID.","operationId":"CreateAIVoiceSnippet","x-api-permission-description":"Allows the creation of a new AI Voice Snippet.","x-api-permission":"ai_voice_snippet:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents#ai-voice-snippets","x-kb-name":"AI Voice Snippets","x-md-link":"markdown/mcp/operation/CreateAIVoiceSnippet.md","tags":["AI Voice Snippets"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Voice Snippet name. Must contain alphabetical characters or underscores only, with a minimum length of 3 and a maximum length of 100. Cannot start or end with an underscore. Must be unique across all AI voice snippets in your account. Consecutive underscores are not accepted.","minLength":3,"maxLength":100,"examples":["Example"]},"description":{"type":"string","description":"The AI Voice Snippet description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Voice Snippet is enabled."},"content":{"type":"string","description":"The AI Voice snippet content, which can contain handlebars syntax.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","content"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_snippet_id":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_snippets/{ai_voice_snippet_id}":{"get":{"summary":"Get An AI Voice Snippet","description":"Retrieve a specific AI Voice Snippet, including its full content.","operationId":"GetAIVoiceSnippet","x-api-permission-description":"Allows the retrieval of AI Voice Snippets.","x-api-permission":"ai_voice_snippet:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents#ai-voice-snippets","x-kb-name":"AI Voice Snippets","x-md-link":"markdown/mcp/operation/GetAIVoiceSnippet.md","tags":["AI Voice Snippets"],"parameters":[{"in":"path","name":"ai_voice_snippet_id","description":"20 character RevCent ID of the AI Voice Snippet to retrieve.","required":true,"schema":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested AI Voice Snippet, including its full content.","properties":{"api_call_id":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"Unix timestamp in seconds when the AI Voice Snippet was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the AI Voice Snippet.","type":"string","title":"AI Voice Snippet ID","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]},"name":{"type":"string","description":"The name of the AI Voice Snippet.","examples":["supervisor_escalation_snippet"]},"description":{"type":"string","description":"A description of the AI Voice Snippet.","examples":["Instructions on what number to forward to if customer wants to escalate."]},"enabled":{"type":"boolean","description":"Whether the AI Voice Snippet is enabled."},"content":{"type":"string","description":"The full AI Voice Snippet text, which may contain Handlebars template expressions.","examples":["#Supervisor Escalation\n-If the customer wants to speak to a supervisor, say \"OK {{customer.first_name}}, please hold while I connect you to a supervisor.\", wait a few seconds and then forward the call to 123-456-7890"]},"updated_date_unix":{"description":"Unix timestamp in seconds when the AI Voice Snippet was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetAIVoiceSnippetSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit An AI Voice Snippet","description":"Edit a previously created AI Voice Snippet using the AI Voice Snippet ID. Only supplied fields are updated.","operationId":"EditAIVoiceSnippet","x-api-permission-description":"Allows the editing of an AI Voice Snippet.","x-api-permission":"ai_voice_snippet:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents#ai-voice-snippets","x-kb-name":"AI Voice Snippets","x-md-link":"markdown/mcp/operation/EditAIVoiceSnippet.md","tags":["AI Voice Snippets"],"parameters":[{"in":"path","name":"ai_voice_snippet_id","description":"The AI Voice Snippet ID","required":true,"schema":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The AI Voice Snippet name. Must contain alphabetical characters or underscores only, with a minimum length of 3 and a maximum length of 100. Cannot start or end with an underscore. Must be unique across all AI voice snippets in your account. Consecutive underscores are not accepted.","minLength":3,"maxLength":100,"examples":["Example"]},"description":{"type":"string","description":"The AI Voice Snippet description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the AI Voice Snippet is enabled."},"content":{"type":"string","description":"The AI Voice Snippet content, which can contain handlebars syntax.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_snippet_id":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/ai_voice_snippets/{ai_voice_snippet_id}/delete":{"post":{"summary":"Delete An AI Voice Snippet","description":"Delete a specific AI voice snippet using the AI voice snippet ID and delete path.","operationId":"DeleteAIVoiceSnippet","x-api-permission-description":"Allows the deletion of an AI Voice Snippet.","x-api-permission":"ai_voice_snippet:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteAIVoiceSnippet.md","tags":["AI Voice Snippets"],"parameters":[{"in":"path","name":"ai_voice_snippet_id","description":"The AI voice snippet ID","required":true,"schema":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ai_voice_snippet_id":{"type":"string","title":"AI Voice Snippet ID","description":"A 20 character AI Voice Snippet ID.","minLength":20,"maxLength":20,"examples":["2R6ggWJGq2fGpN9oRRdy"]},"result":{"type":"string","examples":["AI voice snippet deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/api_calls":{"get":{"summary":"Get API Calls","description":"Retrieve a paginated list of recorded API calls, including their outcomes, timing and originating context, with the newest first. Use GetAPICall to retrieve an individual call's request, response and related items.","operationId":"GetAPICalls","x-api-permission-description":"Allows the retrieval of API calls.","x-api-permission":"api_call:retrieve","x-ai-options":[],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The difference between date_start and date_end cannot exceed a two (2) day period.","x-kb-link":"","x-kb-name":"","x-md-link":"","tags":["API Calls"],"parameters":[{"description":"Inclusive start of the date range as a Unix timestamp in seconds. The range may span at most two days (172800 seconds).","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive end of the date range as a Unix timestamp in seconds. Exactly two days after date_start is allowed.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of results per page, from 1 through 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 through 20. Page 0 is treated as page 1.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter recorded calls by associated API accounts, using their 20 character RevCent IDs.","name":"api_account_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character API account ID.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]}},"style":"form","explode":true},{"name":"api_call_source_filter","in":"query","description":"To filter based on the API call source.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["direct","web_app","webhook","account_link","ai_assistant","ai_voice_agent","system"],"enum":["direct","web_app","webhook","account_link","ai_assistant","ai_voice_agent","system"]}},"style":"form","explode":true},{"name":"api_call_method_filter","in":"query","description":"Filter recorded calls by resource and action. customer_retrieve includes Customer Payment Method reads and other customer retrievals. Historical card calls remain retrievable, but customer_add_card is not a supported filter value.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["sale_create"],"enum":["sale_create","sale_retrieve","sale_void","product_create","product_edit","product_enable","product_disable","product_delete","product_retrieve","customer_create","customer_edit","customer_enable","customer_disable","customer_add_payment_method","customer_enable_payment_method","customer_disable_payment_method","customer_set_default_payment_method","customer_delete_payment_method","customer_retrieve","subscription_renew","subscription_edit","subscription_activate","subscription_suspend","subscription_cancel","subscription_retrieve","subscription_renewal_refund","subscription_renewal_retrieve","product_sale_refund","product_sale_retrieve","shipping_refund","shipping_retrieve","tax_refund","tax_retrieve","trial_expire","trial_suspend","trial_extend","trial_shorten","trial_cancel","trial_retrieve","salvage_transaction_process","salvage_transaction_retrieve","pending_refund_process","pending_refund_retrieve","chargeback_create","chargeback_retrieve","fraud_detection_create","fraud_detection_retrieve"]}},"style":"form","explode":true},{"description":"Filter recorded calls by originating web users, using their 20 character RevCent IDs.","name":"web_user_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character web user ID.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]}},"style":"form","explode":true},{"description":"Filter recorded calls by associated user shops, using their 20 character RevCent IDs.","name":"shop_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"description":"Filter by the recorded operation's outcome. merchant_error includes Merchant Error and Merchant Decline; success and revcent_error exclude Merchant Decline.","name":"api_call_result_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["success","merchant_error","revcent_error"],"examples":["success","merchant_error"]}},"style":"form","explode":true},{"description":"To filter items based on one or more metadata name/value pair objects.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of recorded API calls matching the requested date range and filters.","properties":{"api_call_id":{"type":"string","description":"20 character RevCent ID of this retrieval API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when this retrieval API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The response code for this retrieval. A value of 1 indicates successful retrieval, independently of the outcomes in results.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of API calls returned in results on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The current page number. A requested page of 0 is returned as 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the recorded API call was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the recorded API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The resource type associated with the recorded API call, such as sale or customer.","type":"string","examples":["sale"]},"method":{"description":"The action performed by the recorded API call, such as create or retrieve. This is not the HTTP request method.","type":"string","examples":["create"]},"api_account":{"description":"The API account associated with the recorded API call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the API account.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}},"type":"object"},"ip_address":{"description":"The IP address that made the API call.","type":"string","examples":["192.0.2.10"]},"result":{"description":"The recorded operation's outcome, when available. Merchant Decline is included by the merchant_error result filter.","type":"string","examples":["Success"]},"is_web_app":{"type":"boolean","description":"Whether the API call was made by a user within the web app."},"is_system":{"type":"boolean","description":"Whether the API call was made by the RevCent system."},"is_webhook":{"type":"boolean","description":"Whether the API call was initiated by a configured webhook."},"live_mode":{"description":"Whether the recorded API call used live mode (true) or test mode (false), when available.","type":"boolean","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"third_party_shop":{"description":"The user shop associated with the recorded API call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the user shop.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"web_user":{"description":"The web user associated with the recorded API call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the web user.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]},"username":{"description":"The web user username.","type":"string","examples":["JohnDoe"]}},"type":"object"},"updated_date_unix":{"description":"Unix timestamp in seconds when the recorded API call was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The recorded API call's progress status, such as Complete. Completion does not by itself indicate success; consult result and code for the operation's outcome.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"completed":{"description":"Whether the recorded API call finished. A completed call may have succeeded or failed. Omitted when unavailable.","type":"boolean"},"completed_time":{"description":"When the recorded API call completed, as an ISO 8601 UTC timestamp ending in Z. Omitted when unavailable.","type":"string","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"start_ms":{"description":"When the recorded API call started, as milliseconds since the Unix epoch. Omitted when unavailable.","type":"number","examples":[0]},"end_ms":{"description":"When the recorded API call finished, as milliseconds since the Unix epoch. Omitted when unavailable.","type":"number","examples":[0]},"elapsed_ms":{"description":"The recorded API call's duration in milliseconds, when available. This measures the call's elapsed time, not network travel time to your client.","type":"number","examples":[0]},"webhook":{"description":"The webhook associated with the recorded API call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the webhook.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The webhook name.","type":"string","examples":["Example"]}}},"account_link":{"description":"The account link associated with the recorded API call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the account link.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"ai_assistant":{"description":"The AI Assistant associated with the recorded API call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The AI Assistant name.","type":"string","examples":["Example"]}}},"oauth_client":{"description":"The OAuth client associated with the recorded API call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the OAuth client.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The OAuth client name.","type":"string","examples":["Example"]}}},"code":{"description":"The response code of the recorded operation, distinct from the root retrieval code. Returned only when an integer code is available; zero is a valid value. Its meaning depends on the recorded operation.","type":"integer","examples":[0]}},"title":"APICall","description":"A recorded API call."},"type":"array","maxItems":25,"description":"The resources returned by the request."},"total_count":{"description":"The total number of retrievable API calls matching the supplied date range and all active filters.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total number of pages of retrievable API calls matching the supplied date range and all active filters, for the requested limit.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetAPICallsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/api_calls/{api_call_id}":{"get":{"summary":"Get An API Call","description":"Retrieve a recorded API call, including its outcome, timing, available request and response data, and directly associated resources.","operationId":"GetAPICall","x-api-permission-description":"Allows the retrieval of API calls.","x-api-permission":"api_call:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetAPICall.md","tags":["API Calls"],"parameters":[{"in":"path","name":"api_call_id","description":"20 character RevCent ID of the recorded API call to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the recorded API call, with available request and response data, outcome, timing and directly associated resources.","properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the recorded API call was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the recorded API call being retrieved.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The resource type associated with the recorded API call, such as sale or customer.","type":"string","examples":["sale"]},"method":{"description":"The action performed by the recorded API call, such as create or retrieve. This is not the HTTP request method.","type":"string","examples":["create"]},"api_account":{"description":"The API account associated with the recorded call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the API account.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]},"name":{"description":"The API account name.","type":"string","examples":["My API Account"]}},"type":"object"},"ip_address":{"description":"The IP address that made the API call.","type":"string","examples":["192.0.2.10"]},"request":{"description":"Available recorded request data as a JSON object, with applicable redaction. Omitted when unavailable; an available object may be empty. It is not an untouched HTTP payload or guaranteed to be suitable for replay. Any gateway_raw_response field within this data preserves its valid JSON value, including nested keys, without that redaction.","type":"object","additionalProperties":true,"examples":[{}]},"response":{"description":"Available recorded response data as a JSON object, with applicable redaction. Omitted when unavailable; an available object may be empty. It is not an untouched HTTP payload or guaranteed to be suitable for replay. Any gateway_raw_response field within this data preserves its valid JSON value, including nested keys, without that redaction.","type":"object","additionalProperties":true,"examples":[{}]},"result":{"description":"The recorded operation's outcome, when available. This is separate from the success of this retrieval and from the call's progress status.","type":"string","examples":["Success"]},"is_web_app":{"type":"boolean","description":"Whether the API call was made by a user within the web app."},"is_system":{"type":"boolean","description":"Whether the API call was made by the RevCent system."},"is_webhook":{"type":"boolean","description":"Whether the API call was initiated by a configured webhook."},"live_mode":{"description":"Whether the recorded API call used live mode (true) or test mode (false), when available.","type":"boolean","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"third_party_shop":{"description":"The user shop associated with the recorded call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the user shop.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"web_user":{"description":"The web user associated with the recorded call, when available. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the web user.","minLength":20,"maxLength":20,"examples":["P6jO1qXVLlFY9567l284"]},"username":{"description":"The web user username.","type":"string","examples":["JohnDoe"]}},"type":"object"},"updated_date_unix":{"description":"Unix timestamp in seconds when the recorded API call was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"20 character RevCent ID of the sale.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"IDs of available sales directly associated with the recorded call. Retrieve details with GetSale. This is not a complete list of related resources; an empty array means no IDs are available through this association."},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"20 character RevCent ID of the AI Assistant.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"IDs of available AI Assistants directly associated with the recorded call. Retrieve details with GetAIAssistant. This is not a complete list of related resources; an empty array means no IDs are available through this association."},"chargebacks":{"items":{"type":"string","description":"20 character RevCent ID of the chargeback.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"IDs of available chargebacks directly associated with the recorded call. Retrieve details with GetChargeback. This is not a complete list of related resources; an empty array means no IDs are available through this association."},"fraud_detections":{"items":{"type":"string","description":"20 character RevCent ID of the fraud detection.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"IDs of available fraud detections directly associated with the recorded call. Retrieve details with GetFraudDetection. This is not a complete list of related resources; an empty array means no IDs are available through this association."},"status":{"description":"The recorded API call's progress status. Completion does not imply a successful outcome; see result when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"completed":{"description":"Whether the recorded API call has finished, when reported. A completed call may have an unsuccessful outcome.","type":"boolean"},"completed_time":{"description":"When the recorded API call completed, as an ISO 8601 UTC timestamp. Omitted when unavailable.","type":"string","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"start_ms":{"description":"When the recorded API call started, as milliseconds since the Unix epoch. Omitted when unavailable.","type":"number","examples":[0]},"end_ms":{"description":"When the recorded API call finished, as milliseconds since the Unix epoch. Omitted when unavailable.","type":"number","examples":[0]},"elapsed_ms":{"description":"The recorded API call's duration in milliseconds, when available. This measures the call's elapsed time, not network travel time to your client.","type":"number","examples":[0]},"webhook":{"description":"The webhook associated with the recorded call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the webhook.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The webhook name.","type":"string","examples":["Example"]}}},"account_link":{"description":"The account link associated with the recorded call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the account link.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"ai_assistant":{"description":"The AI Assistant associated with the recorded call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The AI Assistant name.","type":"string","examples":["Example"]}}},"oauth_client":{"description":"The OAuth client associated with the recorded call, when available. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the OAuth client.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The OAuth client name.","type":"string","examples":["Example"]}}},"api_call_id":{"type":"string","description":"20 character RevCent ID of this retrieval request, distinct from id, which identifies the recorded call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when this retrieval request began.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval; it does not indicate that the recorded operation succeeded.","type":"integer","const":1,"examples":[1]}},"title":"GetAPICallSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bigquery":{"post":{"summary":"Run A BigQuery Query","description":"Run a BigQuery query on account data. Queries have a 30-second time limit. Use GetBigQueryTables to inspect available tables and their schemas.","operationId":"BigQueryRunQuery","x-api-permission-description":"Allows you to run reports and conduct queries on your RevCent data directly using BigQuery.","x-api-permission":"bigquery:run_query","x-additional-info":"Directly download all table schemas <a class=\"color-purple\" href=\"https://revcent.com/documentation/files/bigquery/dataset.json\" target=\"_blank\">here</a>.","x-ai-options":["mcp","ai_assistant"],"x-kb-link":"https://kb.revcent.com/en/reporting/bigquery#run-a-query","x-kb-name":"Run A Query","x-md-link":"markdown/mcp/operation/BigQueryRunQuery.md","tags":["BigQuery"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"bigquery_sql":{"type":"string","description":"The BigQuery standard SQL query syntax to execute.<br><br>Note: Table references must be surrounded by backticks, with the project ID as 'revcent', the dataset ID as 'user' and then the table name. For example, if you wanted to reference the transaction table, you would use `revcent.user.transaction` within the BigQuery standard SQL query syntax. Failing to properly reference tables will result in an error.","examples":["SELECT SUM(amount_gross) FROM `revcent.user.transaction` LIMIT 10"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["bigquery_sql"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"query_results":{"type":"array","description":"Query result rows keyed by column name. Values retain their JSON types, including numbers, booleans, strings, null, arrays and nested objects.","items":{"type":"object","additionalProperties":{}}},"result":{"type":"string","description":"A message indicating the result of the BigQuery query.","examples":["Query completed."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bigquery_tables":{"get":{"summary":"Get BigQuery Tables","description":"Retrieve all available BigQuery table schemas, including nested fields, for use with BigQueryRunQuery. All schemas are returned together; no query parameters are accepted.","operationId":"GetBigQueryTables","x-api-permission-description":"Allows the retrieval of table schemas necessary for running queries.","x-api-permission":"bigquery_table:retrieve","x-additional-info":"Directly download all table schemas <a class=\"color-purple\" href=\"https://revcent.com/documentation/files/bigquery/dataset.json\" target=\"_blank\">here</a>.","x-ai-options":["mcp","ai_assistant"],"x-kb-link":"https://kb.revcent.com/en/reporting/bigquery#bigquery-tables","x-kb-name":"BigQuery Tables","x-md-link":"markdown/mcp/operation/GetBigQueryTables.md","tags":["BigQuery"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"All available BigQuery table schemas in one response, including nested field definitions.","properties":{"api_call_id":{"type":"string","description":"20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of table schemas returned, equal to results.length and total_count.","type":"integer","minimum":0,"examples":[10]},"current_page":{"description":"Always 1. All table schemas are returned together, including when results is empty.","type":"integer","const":1,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":true,"properties":{"table_name":{"type":"string","description":"The name of the BigQuery table.","examples":["transaction"]},"description":{"type":"string","description":"An explanation of the table's contents, when available. May be omitted.","examples":["The transaction table consists of credit card transactions."]},"fields":{"type":"array","description":"The fields defined for this table.","items":{"title":"BigQueryField","description":"A field in a BigQuery table schema. Nested fields follow this same structure recursively. Additional field properties are preserved when present.","type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"The field name within its table or parent field.","examples":["amount_gross"]},"type":{"type":"string","description":"The field's BigQuery data type. RECORD fields can contain nested fields.","examples":["FLOAT"]},"mode":{"type":"string","description":"The field mode, such as NULLABLE, REQUIRED, or REPEATED, describing whether values may be absent, are required, or can repeat.","examples":["NULLABLE"]},"description":{"type":"string","description":"An explanation of the field's meaning, when available. May be omitted.","examples":["The gross amount of the transaction."]},"fields":{"description":"Nested fields of a RECORD field. Each follows the same field structure recursively, including any additional properties. Omitted when no nested definition is supplied.","type":"array","items":{"type":"object","additionalProperties":true,"description":"A nested field with the same name, type, mode and optional description properties as its parent field. It may contain its own fields array for further nesting, and additional properties are preserved."}}}}}},"title":"BigQueryTable","description":"A BigQuery table schema. Additional table properties are preserved when present."},"type":"array","description":"All available BigQuery table schemas, with their full nested field definitions and any extension properties. May be empty."},"total_count":{"description":"The total number of table schemas returned, equal to results.length and current_count.","type":"integer","minimum":0,"examples":[10]},"total_pages":{"description":"Always 1. All table schemas are returned together, including when results is empty.","type":"integer","const":1,"examples":[1]}},"type":"object","additionalProperties":false,"title":"GetBigQueryTablesSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bigquery_tables/{table_name}":{"get":{"summary":"Get A BigQuery Table","description":"Retrieve a BigQuery table schema to understand its fields before writing a query. This endpoint accepts no query parameters.","operationId":"GetBigQueryTable","x-api-permission-description":"Allows the retrieval of table schemas necessary for running queries.<br><br><strong>Note:</strong> Should be enabled if <em>bigquery_table:run_query</em> is enabled since it allows the retrieval of the schemas of all BigQuery tables.","x-api-permission":"bigquery_table:retrieve","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/en/reporting/bigquery#bigquery-tables","x-kb-name":"BigQuery Tables","x-md-link":"","tags":["BigQuery"],"parameters":[{"in":"path","name":"table_name","description":"The BigQuery table name: 1–100 characters, starting with a lowercase letter and containing only lowercase letters, digits or underscores.","required":true,"schema":{"type":"string","examples":["transaction"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The table schema, including any additional table properties. The api_call_id, api_call_unix and code fields describe this retrieval and take precedence over table properties with the same names.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this retrieval request.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval of the table schema.","type":"integer","examples":[1],"const":1},"table_name":{"type":"string","description":"The name of the BigQuery table.","examples":["transaction"]},"description":{"type":"string","description":"An explanation of the table's contents, when available. May be omitted or empty.","examples":["The transaction table consists of credit card transactions."]},"fields":{"type":"array","description":"The fields defined for this table.","items":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"The field name within its table or parent field.","examples":["amount_gross"]},"type":{"type":"string","description":"The field's BigQuery data type. RECORD fields can contain nested fields.","examples":["FLOAT"]},"mode":{"type":"string","description":"The field mode, such as NULLABLE, REQUIRED, or REPEATED, describing whether values may be absent, are required, or can repeat.","examples":["NULLABLE"]},"description":{"type":"string","description":"An explanation of the field's meaning, when available. May be omitted.","examples":["The gross amount of the transaction."]},"fields":{"description":"Nested fields of a RECORD field. Each follows the same field structure recursively, including any additional properties. Omitted when no nested definition is supplied.","type":"array","items":{"type":"object","additionalProperties":true,"description":"A nested field with the same name, type, mode and optional description properties as its parent field. It may contain its own fields array for further nesting, and additional properties are preserved."}}},"description":"A field in a BigQuery table schema. Nested fields follow this same structure recursively. Additional field properties are preserved when present."}}},"title":"GetBigQueryTableSuccessResponse","type":"object","additionalProperties":true}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bin_profiles":{"get":{"summary":"Get BIN Profiles","description":"List BIN profile summaries for your account, newest first. Use GetBinProfile with a profile ID to retrieve its BIN values. Only limit and page query parameters are accepted.","operationId":"GetBinProfiles","x-api-permission-description":"Allows the retrieval of BIN profiles.","x-api-permission":"bin_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/bin-profile","x-kb-name":"BIN Profiles","x-md-link":"markdown/mcp/operation/GetBinProfiles.md","tags":["BIN Profiles"],"parameters":[{"description":"Required maximum number of BIN profile summaries per page, from 1 to 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 is also treated as 1.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of BIN profile summaries and pagination totals.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this retrieval request.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of BIN profile summaries in results on this page.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The highest requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","description":"A BIN profile summary. Use its id with GetBinProfile to retrieve the profile's BIN values.","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the profile was created, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the BIN profile.","type":"string","title":"BIN Profile ID","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"name":{"description":"The BIN profile name.","type":"string","examples":["My BIN Profile"]},"description":{"description":"The BIN profile description. May be empty.","type":"string","examples":["The BIN profile used for managing BINs."]},"enabled":{"description":"Whether the BIN profile is currently enabled.","type":"boolean","examples":[true]},"updated_date_unix":{"description":"When the profile was last updated, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","description":"BIN profile summaries for the requested page. BIN values are available through GetBinProfile.","maxItems":25},"total_count":{"description":"The total number of available BIN profiles in your account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of pages of available BIN profiles, calculated by dividing total_count by the requested limit and rounding up. This total can exceed 20, but only pages up to 20 can be requested. Zero when no profiles are available.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetBinProfilesSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A BIN Profile","description":"Create a BIN Profile, which will issue a unique BIN Profile ID.","operationId":"CreateBinProfile","x-api-permission-description":"Allows the creation of a new BIN profile.","x-api-permission":"bin_profile:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/bin-profile","x-kb-name":"BIN Profiles","x-md-link":"markdown/mcp/operation/CreateBinProfile.md","tags":["BIN Profiles"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The BIN Profile name. Must be unique from other BIN Profile names.","examples":["My BIN Profile"]},"description":{"type":"string","description":"The BIN Profile description.","examples":["This is my BIN Profile."]},"enabled":{"type":"boolean","description":"Whether the BIN Profile is enabled."},"bin_6":{"type":"array","description":"The BIN's to associate with the BIN Profile.","items":{"type":"string","description":"An individual BIN, which must be a 6 digit string.","examples":["411111"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"bin_profile_id":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"result":{"type":"string","examples":["BIN Profile created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bin_profiles/{bin_profile_id}":{"get":{"summary":"Get A BIN Profile","description":"Retrieve a BIN profile, including its saved BIN values. This endpoint accepts no query parameters.","operationId":"GetBinProfile","x-api-permission-description":"Allows the retrieval of BIN profiles.","x-api-permission":"bin_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/bin-profile","x-kb-name":"BIN Profiles","x-md-link":"markdown/mcp/operation/GetBinProfile.md","tags":["BIN Profiles"],"parameters":[{"in":"path","name":"bin_profile_id","description":"The 20 character RevCent ID of the BIN profile to retrieve.","required":true,"schema":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested BIN profile and its BIN values, alongside retrieval metadata.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this retrieval request.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval of the requested BIN profile.","type":"integer","examples":[1],"const":1},"created_date_unix":{"description":"When the profile was created, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the BIN profile, matching the requested bin_profile_id.","type":"string","title":"BIN Profile ID","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"name":{"description":"The BIN profile name.","type":"string","examples":["My BIN Profile"]},"description":{"description":"The BIN profile description. May be empty.","type":"string","examples":["The BIN profile used for managing BINs."]},"enabled":{"description":"Whether the BIN profile is currently enabled.","type":"boolean","examples":[true]},"bin_6":{"type":"array","description":"Saved BIN strings, with their order and duplicates preserved. A six-digit BIN identifies the first six digits of a card number. Returned values may also be empty or contain other lengths or characters. Returns an empty array when no BIN strings are available.","items":{"type":"string","description":"A saved BIN string, returned unchanged. It may be empty or contain a value other than six digits.","examples":["411111"]}},"updated_date_unix":{"description":"When the profile was last updated, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetBinProfileSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A BIN Profile","description":"Edit a previously created BIN Profile using the BIN Profile ID. Only supplied fields are updated.","operationId":"EditBinProfile","x-api-permission-description":"Allows the editing of an existing BIN profile.","x-api-permission":"bin_profile:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/bin-profile","x-kb-name":"BIN Profiles","x-md-link":"markdown/mcp/operation/EditBinProfile.md","tags":["BIN Profiles"],"parameters":[{"in":"path","name":"bin_profile_id","description":"The BIN Profile ID","required":true,"schema":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The BIN Profile name. Must be unique from other BIN Profile names.","examples":["Example"]},"description":{"type":"string","description":"The BIN Profile description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the BIN Profile is enabled."},"bin_6":{"type":"array","description":"The BIN's to associate with the BIN Profile. When editing a BIN profile, if the bin_6 array is present it will replace the existing bin_6 array. Ensure all bin_6 values you want in the array are present when making the request with the bin_6 array.","items":{"type":"string","description":"An individual BIN, which must be a 6 digit string.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"bin_profile_id":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/bin_profiles/{bin_profile_id}/delete":{"post":{"summary":"Delete A BIN Profile","description":"Delete a specific BIN profile using the BIN profile ID and delete path.","operationId":"DeleteBinProfile","x-api-permission-description":"Allows the deletion of a specific BIN profile.","x-api-permission":"bin_profile:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteBinProfile.md","tags":["BIN Profiles"],"parameters":[{"in":"path","name":"bin_profile_id","description":"The BIN profile ID","required":true,"schema":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"bin_profile_id":{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/campaigns":{"get":{"summary":"Get Campaigns","description":"List campaigns for your account, newest first. Only limit and page query parameters are accepted.","operationId":"GetCampaigns","x-api-permission-description":"Allows the retrieval of Campaigns.","x-api-permission":"campaign:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Page and limit URL parameters are required.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCampaigns.md","tags":["Campaigns"],"parameters":[{"description":"Required maximum number of campaigns per page, from 1 to 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 is also treated as 1.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of campaigns and pagination totals.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this retrieval request.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of campaigns in results on this page.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The highest requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the campaign was created, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"type":"string","description":"The campaign name.","examples":["AdWords Campaign"]},"description":{"type":"string","description":"The campaign description. May be empty.","examples":["This is my campaign."]},"enabled":{"type":"boolean","description":"Whether the campaign is enabled."},"organization":{"items":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated organization.","type":"string","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Organization name.","examples":["My Organization"]}},"type":"object"},"type":"array","description":"Available organizations associated with the campaign. This array may be empty."},"updated_date_unix":{"description":"When the campaign was last updated, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","description":"The campaigns on the requested page, newest first.","maxItems":25},"total_count":{"description":"The total number of available campaigns in your account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of pages of available campaigns, calculated by dividing total_count by the requested limit and rounding up. This total can exceed 20, but only pages up to 20 can be requested. Zero when no campaigns are available.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetCampaignsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Campaign","description":"Create a campaign, which will issue a unique campaign ID.","operationId":"CreateCampaign","x-api-permission-description":"Allows the creation of a new Campaign.","x-api-permission":"campaign:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateCampaign.md","tags":["Campaigns"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The campaign name. Must be unique from other campaign names.","type":"string","examples":["My New Campaign"]},"description":{"description":"The campaign description.","type":"string","examples":["My newly created campaign."]},"enabled":{"description":"Whether the campaign is enabled.","type":"boolean"},"organization":{"items":{"type":"string","description":"A 20 character organization ID.","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"type":"array","description":"An array of organization ID's to associate with the campaign."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","examples":["My New Campaign"]},"organization":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character organization ID.","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Organization name.","examples":["My Organization"]}},"type":"object"},"type":"array","description":"Any organizations associated with the campaign."},"result":{"type":"string","examples":["Campaign created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/campaigns/{campaign_id}":{"get":{"summary":"Get A Campaign","description":"Retrieve a campaign and its available associated organizations. This endpoint accepts no query parameters.","operationId":"GetCampaign","x-api-permission-description":"Allows the retrieval of Campaigns.","x-api-permission":"campaign:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCampaign.md","tags":["Campaigns"],"parameters":[{"in":"path","name":"campaign_id","description":"The 20 character RevCent ID of the campaign to retrieve.","required":true,"schema":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested campaign and its available associated organizations, alongside retrieval metadata.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this retrieval request.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval of the requested campaign.","type":"integer","examples":[1],"const":1},"created_date_unix":{"description":"When the campaign was created, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the campaign, matching the requested campaign_id.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"type":"string","description":"The campaign name. May be empty.","examples":["AdWords Campaign"]},"description":{"type":"string","description":"The campaign description. May be empty.","examples":["This is my campaign."]},"enabled":{"type":"boolean","description":"Whether the campaign is enabled."},"organization":{"items":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated organization.","type":"string","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The organization name. May be empty.","examples":["My Organization"]}},"type":"object"},"type":"array","description":"Available organizations associated with the campaign. This array may be empty; association order and duplicates are preserved."},"updated_date_unix":{"description":"When the campaign was last updated, in Unix seconds. Zero means the timestamp is unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetCampaignSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Campaign","description":"Edit a previously created campaign using the campaign ID.","operationId":"EditCampaign","x-api-permission-description":"Allows the editing of an existing Campaign.","x-api-permission":"campaign:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditCampaign.md","tags":["Campaigns"],"parameters":[{"in":"path","name":"campaign_id","description":"The campaign ID","required":true,"schema":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The campaign name. Must be unique from other campaign names.","type":"string","examples":["Example"]},"description":{"description":"The campaign description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the campaign is enabled or disabled.","type":"boolean"},"organization":{"items":{"type":"string","description":"A 20 character organization ID.","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"type":"array","description":"An array of organization ID's."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"organization":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character organization ID.","minLength":20,"maxLength":20,"examples":["4rBAwPJzlPSg9lRwGVmX","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Organization name.","examples":["Example"]}},"type":"object"},"type":"array","description":"Any organizations associated with the campaign."},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/chargebacks":{"get":{"summary":"Get Chargebacks","description":"List chargebacks matching the supplied filters, newest first.","operationId":"GetChargebacks","x-api-permission-description":"Allows the retrieval of Chargebacks.","x-api-permission":"chargeback:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The date_start, date_end, page and limit query parameters are required. The date range may span at most 90 days, including exactly 90 days.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/GetChargebacks.md","tags":["Chargebacks"],"parameters":[{"description":"Inclusive start of the chargeback creation-time range, in Unix seconds. Dates remain required and the range must not exceed 90 days when customer_id is supplied, but they do not restrict that customer’s results.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive end of the chargeback creation-time range, in Unix seconds. Dates remain required and the range must not exceed 90 days when customer_id is supplied, but they do not restrict that customer’s results.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of chargebacks per page, from 1 to 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 is also treated as 1.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"},{"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"maxItems":50},"name":"campaign_filter","in":"query","description":"To filter items based on one or more associated campaigns.","required":false,"style":"form","explode":true},{"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"maxItems":50},"name":"shop_filter","in":"query","description":"To filter items based on one or more associated shops.","required":false,"style":"form","explode":true},{"schema":{"type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"maxItems":50},"name":"gateway_filter","in":"query","description":"To filter items based on one or more associated gateways.","required":false,"style":"form","explode":true},{"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]},"maxItems":50},"name":"currency_filter","in":"query","description":"To filter items based on the three-letter ISO 4217 currency code.","required":false,"style":"form","explode":true},{"name":"method_filter","in":"query","description":"To filter chargebacks based on the originating transaction method.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process"],"examples":["sale_create","subscription_renew","trial_expire","salvage_transaction_process"]},"maxItems":50},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by representment state. None means neither initiated nor completed. Pending means initiated or completed without a recognized final outcome. Won and Lost require completion and the corresponding outcome, even when an older record lacks an initiated flag. Selected states are alternatives. These filters are separate from the returned chargeback status and customer.status.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["representment_none","representment_pending","representment_won","representment_lost"],"examples":["representment_none","representment_pending","representment_won","representment_lost"]},"maxItems":50},"style":"form","explode":true},{"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"description":"To filter items based on one or more metadata name/value pair objects.","explode":true,"in":"query","name":"metadata_filter","required":false,"style":"deepObject"},{"description":"The 20 character RevCent ID of the customer whose chargebacks to retrieve. Creation dates do not restrict results when supplied, but date_start and date_end remain required and validated.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of chargebacks and pagination totals.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval, not a chargeback or representment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"current_count":{"description":"The number of chargebacks in results on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the chargeback was created, in Unix seconds. This is the creation time selected by date_start and date_end when customer_id is not supplied.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The chargeback's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"amount":{"description":"The chargeback amount in major units of iso_currency, rounded to two decimal places. Omitted when unavailable. If iso_currency is omitted, the currency is unavailable and must not be assumed.","type":"number","format":"float","examples":[129.99]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"campaign_id":{"type":"string","title":"Campaign ID","description":"The associated campaign's 20 character RevCent ID. Returned together with campaign_name when the campaign is available.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The associated campaign's name. Returned together with campaign_id when the campaign is available.","examples":["AdWords Campaign"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"chargeback_date":{"description":"When the issuer or customer created the chargeback, in ISO 8601 UTC. Returned with chargeback_date_unix when available; otherwise both are omitted.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"chargeback_date_unix":{"description":"When the issuer or customer created the chargeback, in Unix seconds. Returned together with chargeback_date when available.","type":"integer","format":"unix-time","examples":[1675367500]},"customer":{"type":"object","description":"Available details of the associated customer; omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer country in three letter ISO 3166-1 alpha-3 format.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"The 20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status, distinct from the chargeback status and representment outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"gateway":{"additionalProperties":false,"properties":{"name":{"description":"The gateway name.","type":"string","examples":["Authorize.net"]},"id":{"type":"string","description":"The 20 character RevCent ID of the user gateway.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"merchant_account_id":{"description":"The merchant account ID associated with the gateway.","type":"string","examples":["235828989"]}},"type":"object","description":"The associated gateway. Omitted when the relationship is unavailable."},"gateway_transaction_id":{"type":"string","description":"The originating gateway transaction ID.","examples":["60158776104"]},"is_third_party_integration":{"type":"boolean","description":"Whether the chargeback was created via a third party integration.","examples":[false]},"iso_currency":{"description":"The three-letter ISO 4217 currency code for amount, with the recorded letter case preserved. USD is used when no currency was supplied. Omitted when the currency is unavailable; do not assume a currency when this field is absent.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"merchant_account_id":{"description":"The merchant account ID associated with the gateway.","type":"string","examples":["235828989"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available name/value metadata entries. May be empty.","maxItems":50},"origin_api_call":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The original transaction API call type.","type":"string","examples":["sale"]},"method":{"description":"The original transaction API call method.","type":"string","examples":["create"]}},"type":"object","description":"The associated origin API call. Omitted when the relationship is unavailable."},"updated_date_unix":{"description":"When the chargeback was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"The 20 character RevCent ID of the sale.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. May be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"The 20 character RevCent ID of the product sale.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. May be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"The 20 character RevCent ID of the shipping.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipping IDs. May be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"The 20 character RevCent ID of the tax.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. May be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"The 20 character RevCent ID of the discount.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"The 20 character RevCent ID of the trial.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs. May be empty or incomplete. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"The 20 character RevCent ID of the subscription.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. May be empty or incomplete. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"The 20 character RevCent ID of the subscription renewal.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. May be empty or incomplete. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the transaction.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transaction IDs. May be empty or incomplete. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"The 20 character RevCent ID of the AI Thread.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs. May be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"The 20 character RevCent ID of the AI Assistant.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs. May be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the PayPal transaction.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"The 20 character RevCent ID of the offline payment.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"check_directs":{"items":{"type":"string","description":"The 20 character RevCent ID of the check direct.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the salvage transaction.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs. May be empty or incomplete. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"The 20 character RevCent ID of the pending refund.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"The 20 character RevCent ID of the chargeback.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"The 20 character RevCent ID of the fraud detection.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"api_calls":{"items":{"type":"string","description":"The 20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. May be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"status":{"description":"The chargeback's status. Distinct from the representment values accepted by status_filter and from customer.status.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"received_date":{"description":"When the merchant received the chargeback, in ISO 8601 UTC. Returned with received_date_unix when available; otherwise both are omitted.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"received_date_unix":{"description":"When the merchant received the chargeback, in Unix seconds. Returned together with received_date when available.","format":"unix-time","type":"integer","examples":[1893499200]},"representment":{"additionalProperties":false,"description":"Details of an attempt to dispute the chargeback. Contains only initiated: false when neither initiation nor completion is recorded. Completed outcomes remain available even if an older record lacks the initiated flag.","properties":{"initiated":{"description":"Whether a representment has been initiated.","type":"boolean"},"initiated_date":{"description":"When representment was initiated, in ISO 8601 UTC. Omitted when unavailable or when neither initiation nor completion is recorded.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"completed":{"description":"Returned as true when representment is marked complete, even if an older record lacks the initiated flag; otherwise omitted. Completion does not guarantee a recognized final outcome.","type":"boolean"},"completed_date":{"description":"When representment completed, in ISO 8601 UTC. Returned only for completed representment when the date is available.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"outcome":{"description":"The final outcome, won or lost, when available. pending means a recognized final outcome is not available, even if completed is true. Omitted when neither initiation nor completion is recorded.","enum":["pending","won","lost"],"type":"string","examples":["pending"]}},"type":"object"},"result":{"description":"The chargeback result, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"reason_code":{"description":"The reason code, if applicable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_order_id":{"description":"The third party integration order ID associated with the chargeback.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_chargeback_id":{"description":"The third party integration chargeback ID associated with the chargeback.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shop":{"additionalProperties":false,"description":"The associated third-party shop. Omitted when the relationship is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated shop.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the associated shop.","type":"string","examples":["Example"]}},"type":"object"},"third_party_integration":{"additionalProperties":false,"description":"The associated configured third-party integration. Omitted when the relationship is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated configured third-party integration.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the associated configured third-party integration.","type":"string","examples":["Example"]},"third_party":{"additionalProperties":false,"description":"The integration provider associated with the chargeback.","properties":{"id":{"description":"The 20 character RevCent ID of the integration provider.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The integration provider name.","type":"string","examples":["Example"]}},"type":"object"}},"type":"object"}}},"type":"array","maxItems":25,"description":"The chargebacks on this page, newest first."},"total_count":{"description":"The total number of available chargebacks matching all effective filters. Creation dates restrict results unless customer_id is supplied.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of pages matching all effective filters, calculated by dividing total_count by the requested limit and rounding up. Zero when there are no matches. This total can exceed the highest requestable page, 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetChargebacksSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Chargeback","description":"Create a chargeback. A chargeback must be associated with a previous credit card transaction. To associate a previous transaction use the transaction_id or gateway_transaction_id property within the request body for the transaction associated.","operationId":"CreateChargeback","x-api-permission-description":"Allows the creation of a new Chargeback.","x-api-permission":"chargeback:create","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/CreateChargeback.md","tags":["Chargebacks"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"transaction_id":{"type":"string","description":"The RevCent transaction ID for the chargeback related transaction. If not present, you must provide the gateway_transaction_id property.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"gateway_transaction_id":{"type":"string","description":"The gateway transaction ID for the chargeback related transaction. Only provide if the transaction_id property is not present.","examples":["60158776104"]},"amount":{"description":"The chargeback amount.","type":"number","format":"float","examples":[129.99]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"reason_code":{"type":"string","description":"The reason code, if applicable.","examples":["3"]},"third_party_integration_id":{"type":"string","description":"A 20 character third party integration ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"third_party_chargeback_id":{"type":"string","description":"The third party integration chargeback ID, if being created by a third party chargeback management company.","examples":["cb_0001"]},"third_party_order_id":{"type":"string","description":"The third party integration order ID, if being created by a third party chargeback management company.","examples":["or_0001"]},"chargeback_date":{"description":"The date when the chargeback was created by the issuer and or customer in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"received_date":{"description":"The date when the chargeback was received by the merchant in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"void_transaction":{"type":"boolean","description":"You can choose to void the transaction, which will automatically issue a full refund. Default is false. Note: This cannot be undone.","examples":[false]},"representment":{"additionalProperties":false,"description":"The representment object contains details regarding any attempt to fight the chargeback.","properties":{"initiated":{"type":"boolean","description":"Whether a representment has been initiated. Read-only once set.","examples":[true]},"initiated_date":{"description":"The date the representment was initiated. Read-only once set.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"completed":{"type":"boolean","description":"Whether the representment has completed, with an outcome. The initiated property must be set, or have been previously set, to true. Read-only once set.","examples":[true]},"completed_date":{"type":"string","description":"The date the representment was completed, with an outcome. Read-only once set.","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"outcome":{"type":"string","description":"The final outcome of the chargeback representment. The initiated and completed properties must be set, or have been previously set, to true.","enum":["pending","won","lost"],"examples":["won"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"chargeback_id":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"result":{"type":"string","examples":["Chargeback created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/chargebacks/{chargeback_id}":{"get":{"summary":"Get A Chargeback","description":"Retrieve a chargeback and its available related details. This endpoint accepts no query parameters.","operationId":"GetChargeback","x-api-permission-description":"Allows the retrieval of Chargebacks.","x-api-permission":"chargeback:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/GetChargeback.md","tags":["Chargebacks"],"parameters":[{"in":"path","name":"chargeback_id","description":"The 20 character RevCent ID of the chargeback to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested chargeback and available related details, alongside retrieval metadata.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval, not a chargeback or representment outcome.","type":"integer","const":1,"examples":[1]},"created_date_unix":{"description":"When the chargeback was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The 20 character RevCent ID of the chargeback, matching the requested chargeback_id.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"amount":{"description":"The chargeback amount in major units of iso_currency, rounded to two decimal places. Omitted when unavailable. If iso_currency is omitted, the currency is unavailable and must not be assumed.","type":"number","format":"float","examples":[129.99]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"campaign_id":{"type":"string","title":"Campaign ID","description":"The associated campaign's 20 character RevCent ID. Returned together with campaign_name when the campaign is available.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The associated campaign's name. Returned together with campaign_id when the campaign is available.","examples":["AdWords Campaign"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"chargeback_date":{"description":"When the issuer or customer created the chargeback, in ISO 8601 UTC. Returned with chargeback_date_unix when available; otherwise both are omitted.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"chargeback_date_unix":{"description":"When the issuer or customer created the chargeback, in Unix seconds. Returned together with chargeback_date when available.","type":"integer","format":"unix-time","examples":[1675367500]},"customer":{"type":"object","description":"Available details of the associated customer; omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer country in three letter ISO 3166-1 alpha-3 format.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"The 20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status, distinct from the chargeback status and representment outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"gateway":{"additionalProperties":false,"properties":{"name":{"description":"The gateway name.","type":"string","examples":["Authorize.net"]},"id":{"type":"string","description":"The 20 character RevCent ID of the user gateway.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"merchant_account_id":{"description":"The merchant account ID associated with the gateway.","type":"string","examples":["235828989"]}},"type":"object","description":"The associated gateway. Omitted when the relationship is unavailable."},"gateway_transaction_id":{"type":"string","description":"The originating gateway transaction ID.","examples":["60158776104"]},"is_third_party_integration":{"type":"boolean","description":"Whether the chargeback was created via a third party integration.","examples":[false]},"iso_currency":{"description":"The three-letter ISO 4217 currency code for amount, with the recorded letter case preserved. USD is used when no currency was supplied. Omitted when the currency is unavailable; do not assume a currency when this field is absent.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"merchant_account_id":{"description":"The merchant account ID associated with the gateway.","type":"string","examples":["235828989"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available name/value metadata entries. May be empty.","maxItems":50},"origin_api_call":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The original transaction API call type.","type":"string","examples":["sale"]},"method":{"description":"The original transaction API call method.","type":"string","examples":["create"]}},"type":"object","description":"The associated origin API call. Omitted when the relationship is unavailable."},"updated_date_unix":{"description":"When the chargeback was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"The 20 character RevCent ID of the sale.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. May be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"The 20 character RevCent ID of the product sale.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. May be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"The 20 character RevCent ID of the shipping.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipping IDs. May be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"The 20 character RevCent ID of the tax.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. May be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"The 20 character RevCent ID of the discount.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"The 20 character RevCent ID of the trial.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs. May be empty or incomplete. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"The 20 character RevCent ID of the subscription.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. May be empty or incomplete. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"The 20 character RevCent ID of the subscription renewal.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. May be empty or incomplete. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the transaction.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transaction IDs. May be empty or incomplete. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"The 20 character RevCent ID of the AI Thread.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs. May be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"The 20 character RevCent ID of the AI Assistant.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs. May be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the PayPal transaction.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"The 20 character RevCent ID of the offline payment.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"check_directs":{"items":{"type":"string","description":"The 20 character RevCent ID of the check direct.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"The 20 character RevCent ID of the salvage transaction.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs. May be empty or incomplete. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"The 20 character RevCent ID of the pending refund.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"The 20 character RevCent ID of the chargeback.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"The 20 character RevCent ID of the fraud detection.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"api_calls":{"items":{"type":"string","description":"The 20 character RevCent ID of the API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. May be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"status":{"description":"The chargeback's status. Distinct from the representment values accepted by status_filter and from customer.status.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"received_date":{"description":"When the merchant received the chargeback, in ISO 8601 UTC. Returned with received_date_unix when available; otherwise both are omitted.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"received_date_unix":{"description":"When the merchant received the chargeback, in Unix seconds. Returned together with received_date when available.","format":"unix-time","type":"integer","examples":[1893499200]},"representment":{"additionalProperties":false,"description":"Details of an attempt to dispute the chargeback. Contains only initiated: false when neither initiation nor completion is recorded. Completed outcomes remain available even if an older record lacks the initiated flag.","properties":{"initiated":{"description":"Whether a representment has been initiated.","type":"boolean"},"initiated_date":{"description":"When representment was initiated, in ISO 8601 UTC. Omitted when unavailable or when neither initiation nor completion is recorded.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"completed":{"description":"Returned as true when representment is marked complete, even if an older record lacks the initiated flag; otherwise omitted. Completion does not guarantee a recognized final outcome.","type":"boolean"},"completed_date":{"description":"When representment completed, in ISO 8601 UTC. Returned only for completed representment when the date is available.","format":"date-time","type":"string","examples":["2030-12-31T12:00:00Z"]},"outcome":{"description":"The final outcome, won or lost, when available. pending means a recognized final outcome is not available, even if completed is true. Omitted when neither initiation nor completion is recorded.","enum":["pending","won","lost"],"type":"string","examples":["pending"]}},"type":"object"},"result":{"description":"The chargeback result, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"reason_code":{"description":"The reason code, if applicable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_order_id":{"description":"The third party integration order ID associated with the chargeback.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_chargeback_id":{"description":"The third party integration chargeback ID associated with the chargeback.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shop":{"additionalProperties":false,"description":"The associated third-party shop. Omitted when the relationship is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated shop.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the associated shop.","type":"string","examples":["Example"]}},"type":"object"},"third_party_integration":{"additionalProperties":false,"description":"The associated configured third-party integration. Omitted when the relationship is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated configured third-party integration.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the associated configured third-party integration.","type":"string","examples":["Example"]},"third_party":{"additionalProperties":false,"description":"The integration provider associated with the chargeback.","properties":{"id":{"description":"The 20 character RevCent ID of the integration provider.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The integration provider name.","type":"string","examples":["Example"]}},"type":"object"}},"type":"object"}},"title":"GetChargebackSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Chargeback","description":"Edit the details of a specific chargeback using the chargeback ID.","operationId":"EditChargeback","x-api-permission-description":"Allows the editing of an existing Chargeback.","x-api-permission":"chargeback:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/EditChargeback.md","tags":["Chargebacks"],"parameters":[{"in":"path","name":"chargeback_id","description":"The chargeback ID","required":true,"schema":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The chargeback amount.","type":"number","format":"float","examples":[129.99]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"reason_code":{"type":"string","description":"The reason code, if applicable.","examples":["3"]},"third_party_chargeback_id":{"type":"string","description":"The third party integration chargeback ID, if being created by a third party chargeback management company.","examples":["cb_0001"]},"third_party_order_id":{"type":"string","description":"The third party integration order ID, if being created by a third party chargeback management company.","examples":["or_0001"]},"chargeback_date":{"description":"The date when the chargeback was created by the issuer and or customer in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"received_date":{"description":"The date when the chargeback was received by the merchant in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"representment":{"additionalProperties":false,"description":"The representment object contains details regarding any attempt to fight the chargeback.","properties":{"initiated":{"type":"boolean","description":"Whether a representment has been initiated. Read-only once set.","examples":[true]},"initiated_date":{"description":"The date the representment was initiated. Read-only once set.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"completed":{"type":"boolean","description":"Whether the representment has completed, with an outcome. The initiated property must be set, or have been previously set, to true. Read-only once set.","examples":[true]},"completed_date":{"type":"string","description":"The date the representment was completed, with an outcome. Read-only once set.","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"outcome":{"type":"string","description":"The final outcome of the chargeback representment. The initiated and completed properties must be set, or have been previously set, to true.","enum":["pending","won","lost"],"examples":["won"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"chargeback_id":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"result":{"type":"string","examples":["Chargeback edited."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/chargebacks/search":{"get":{"summary":"Search Chargebacks","description":"Search chargebacks using a single term and retrieve up to ten matches ordered by relevance.","operationId":"SearchChargebacks","x-api-permission-description":"Allows the searching of Chargebacks using a single search term.","x-api-permission":"chargeback:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Use the id from a search result with GetChargeback to retrieve chargeback details. Search results are not paginated.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/SearchChargebacks.md","tags":["Chargebacks"],"parameters":[{"name":"search_term","description":"The term or phrase to search for. Leading and trailing whitespace is ignored; the remaining term must not be empty. This is the only supported query parameter.","in":"query","required":true,"schema":{"type":"string","examples":["washington"]},"style":"form","x-additional-info":"Searches chargeback ID, customer first and last name, email, phone, first address line, IP address, acquirer reference number (ARN), case number, first six and last four card digits, merchant account ID, third-party chargeback and order IDs, gateway transaction ID, and metadata values."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"title":"SearchChargebacksSuccessResponse","description":"Successful chargeback search response.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval, not a chargeback outcome.","type":"integer","format":"int32","enum":[1],"const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to ten chargeback matches, ordered by relevance. May be empty.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"amount":{"type":"number","description":"The chargeback amount in major currency units, returned without rounding. Use GetChargeback with id to retrieve currency information; do not assume a currency.","examples":[0]},"arn":{"type":"string","description":"The acquirer reference number, when applicable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the historical saved card. Omitted when unavailable or invalid.","examples":["ALAGkvj0O7u5rdmVggQ7"]},"case_number":{"type":"string","description":"The chargeback case number, when applicable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"chargeback_date_unix":{"type":"integer","format":"unix-time","description":"The Unix timestamp when the chargeback was created by the issuer or customer.","examples":[1893499200]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"created_date_unix":{"type":"integer","format":"unix-time","description":"When the chargeback was created in RevCent, in Unix seconds.","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the customer. Omitted when unavailable or invalid.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["georgew@whitehouse.gov"]},"first_6":{"type":"string","description":"The first six card digits, including any leading zeroes. Omitted when unavailable or invalid.","minLength":6,"maxLength":6,"examples":["424242"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"gateway_transaction_id":{"type":"string","description":"The originating gateway transaction ID.","examples":["60158776104"]},"highlights":{"type":"array","description":"Matching text grouped by searchable field. Optional full_text appears only for metadata highlights.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","arn","case_number","email","first_6","first_name","gateway_transaction_id","id","ip_address","last_4","last_name","merchant_account_id","metadata","phone","third_party_chargeback_id","third_party_order_id"],"description":"The search field where the highlighted match was found.","examples":["last_name"]},"values":{"type":"array","description":"The values that matched within the search field.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"The relevance score for the highlighted match.","examples":[0]},"full_text":{"type":"string","description":"The complete text of the highlighted metadata passage. Returned only when field is metadata.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the chargeback. Use this ID with GetChargeback to retrieve its details.","examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"ip_address":{"type":"string","description":"The customer IP address associated with the chargeback.","examples":["192.0.2.10"]},"item_type":{"type":"string","const":"chargeback","description":"The item type returned in the search result.","examples":["chargeback"]},"last_4":{"type":"string","description":"The last four card digits, including any leading zeroes. Omitted when unavailable or invalid.","minLength":4,"maxLength":4,"examples":["4242"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"merchant_account_id":{"type":"string","description":"The merchant account identifier provided by the gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 available metadata name/value entries. Omitted when unavailable; may be empty.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"The customer phone number.","examples":["+12025550123"]},"reason_code":{"type":"string","description":"The chargeback reason code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"received_date_unix":{"type":"integer","format":"unix-time","description":"The Unix timestamp when the chargeback was received.","examples":[1893499200]},"score":{"type":"number","description":"The relevance score for this result; higher values indicate a closer match.","examples":[7.68]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"third_party_chargeback_id":{"type":"string","description":"The third-party chargeback ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_order_id":{"type":"string","description":"The third-party order ID associated with the chargeback.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"transaction_date_unix":{"type":"integer","format":"unix-time","description":"The Unix timestamp when the related transaction was created.","examples":[1893499200]},"transaction_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the transaction. Omitted when unavailable or invalid.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"type":"string","format":"uri","description":"The RevCent details URL for the chargeback identified by id.","examples":["https://revcent.com/user/chargeback-details/ALRjyqRE27fjMonyKLny"]},"zip":{"type":"string","description":"The customer ZIP or postal code.","examples":["02108"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/check_directs":{"get":{"summary":"Get Check Directs","description":"Retrieve previously created checks, newest first.","operationId":"GetCheckDirects","x-api-permission-description":"Allows the retrieval of Checks.","x-api-permission":"check_direct:retrieve","x-ai-options":["mcp"],"x-additional-info":"date_start, date_end, page and limit are required. The date range may span up to 90 days (7,776,000 seconds), including that exact duration. Only pages 1 through 20 can be retrieved; page 0 is treated as page 1.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCheckDirects.md","tags":["Checks"],"parameters":[{"description":"The inclusive start of the check creation date range, in Unix seconds. Must not be after date_end; the range may span at most 90 days (7,776,000 seconds).","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"The exclusive end of the check creation date range, in Unix seconds. Required even when customer_id is supplied.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"The maximum number of checks to return on a page, from 1 to 25. Required.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve, from 1 to 20. A value of 0 is treated as page 1. Required.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"},{"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"maxItems":50},"name":"campaign_filter","in":"query","description":"To filter items based on one or more associated campaigns.","required":false,"style":"form","explode":true},{"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]},"maxItems":50},"name":"currency_filter","in":"query","description":"To filter items based on the three-letter ISO 4217 currency code.","required":false,"style":"form","explode":true},{"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"maxItems":50},"name":"shop_filter","in":"query","description":"To filter items based on one or more associated shops.","required":false,"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by pending_receipt (awaiting receipt), received, fraud (marked for fraud), or chargeback. Multiple values match any selected status category.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["pending_receipt","received","fraud","chargeback"],"examples":["pending_receipt","received","fraud","chargeback"]},"maxItems":4},"style":"form","explode":true},{"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array","maxItems":50},"description":"To filter items based on one or more metadata name/value pair objects.","explode":true,"in":"query","name":"metadata_filter","required":false,"style":"deepObject"},{"description":"The 20 character RevCent ID of the customer whose checks to retrieve. Further restricts the date range; it does not bypass date filtering.","schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"in":"query","name":"customer_id","required":false,"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful check list response.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval, not the check's status.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of checks returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The highest requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the check was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"A 20 character RevCent check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"amount":{"description":"The check amount in major currency units, rounded to two decimal places. Zero may also mean the amount is unavailable. For checks associated with a sale, use an available sales ID with GetSale to retrieve iso_currency. If that context is unavailable, do not assume a currency.","type":"number","format":"float","examples":[201.58]},"campaign_id":{"type":"string","title":"Campaign ID","description":"The 20 character RevCent ID of the associated campaign. Returned together with campaign_name when available.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The associated campaign name. Returned together with campaign_id when available.","examples":["AdWords Campaign"]},"check_number":{"description":"The check number. An empty string indicates that it is unavailable.","type":"string","examples":["1234"]},"customer":{"type":"object","description":"Available details of the customer associated with the check.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's three-letter ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"A 20 character RevCent customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status, separate from the check's status and receipt state.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"received":{"description":"Whether receipt of the check is recorded. False when receipt is not recorded or is unavailable. This is separate from status.","type":"boolean","examples":[true]},"status":{"description":"The check status, such as Pending Receipt, Received, Fraud Detected or Chargeback. Other statuses may be returned. This is separate from received and customer.status.","type":"string","examples":["Received"]},"third_party_shop":{"description":"The originating user shop, if applicable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available name/value metadata entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"When the check was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character RevCent sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. May be empty and may not include every related resource. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character RevCent product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. May be empty and may not include every related resource. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character RevCent shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs. May be empty and may not include every related resource. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character RevCent tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. May be empty and may not include every related resource. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character RevCent discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character RevCent trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character RevCent subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. May be empty and may not include every related resource. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character RevCent subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. May be empty and may not include every related resource. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character RevCent transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character RevCent AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI Thread IDs. May be empty and may not include every related resource. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character RevCent AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs. May be empty and may not include every related resource. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character RevCent PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character RevCent offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character RevCent check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character RevCent salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character RevCent pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs. May be empty and may not include every related resource. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character RevCent chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character RevCent fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs. May be empty and may not include every related resource. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character RevCent API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. May be empty and may not include every related resource. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}}},"type":"array","maxItems":25,"description":"The checks on this page, newest first. May be empty."},"total_count":{"description":"The total number of available checks matching all applied filters, including the creation dates and customer_id when supplied.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of pages matching all applied filters, calculated by dividing total_count by limit and rounding up. Zero when no checks match. This total can exceed 20, but only pages up to 20 can be requested.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetCheckDirectsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/check_directs/{check_direct_id}":{"get":{"summary":"Get A Check Direct","description":"Retrieve one previously created check and its available related information using check_direct_id. This operation accepts no query parameters.","operationId":"GetCheckDirect","x-api-permission-description":"Allows the retrieval of Checks.","x-api-permission":"check_direct:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCheckDirect.md","tags":["Checks"],"parameters":[{"in":"path","name":"check_direct_id","description":"The 20 character RevCent ID of the check to retrieve.","required":true,"schema":{"description":"The 20 character RevCent ID of the check to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful check detail response.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval, not the check's status.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the check was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The 20 character RevCent ID of the check, matching the requested check_direct_id.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"amount":{"description":"The check amount in major currency units, rounded to two decimal places. Zero is also returned when the amount is unavailable or invalid. For checks associated with a sale, use an available sales ID with GetSale to retrieve iso_currency. If that context is unavailable, do not assume a currency.","type":"number","format":"float","examples":[201.58]},"campaign_id":{"type":"string","title":"Campaign ID","description":"The 20 character RevCent ID of the associated campaign. Returned together with campaign_name when available.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The associated campaign name. Returned together with campaign_id when available.","examples":["AdWords Campaign"]},"check_number":{"description":"The check number. An empty string indicates that it is unavailable.","type":"string","examples":["1234"]},"customer":{"type":"object","description":"Available details of the customer associated with the check.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's three-letter ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","examples":["USA"]},"email":{"type":"string","description":"The historical customer email text, returned as recorded; it may not be a valid email address.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"title":"Customer ID","type":"string","description":"A 20 character RevCent customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status, separate from the check's status and receipt state.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"received":{"description":"Whether receipt of the check is recorded. False when receipt is not recorded or is unavailable. This is separate from status.","type":"boolean","examples":[true]},"status":{"description":"The check status, such as Pending Receipt, Received, Fraud Detected or Chargeback. Other statuses may be returned. This is separate from received and customer.status.","type":"string","examples":["Received"]},"third_party_shop":{"description":"The originating user shop, if applicable.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available name/value metadata entries. May be empty.","maxItems":50},"updated_date_unix":{"description":"When the check was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character RevCent sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. May be empty and may not include every related resource. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character RevCent product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. May be empty and may not include every related resource. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character RevCent shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs. May be empty and may not include every related resource. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character RevCent tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. May be empty and may not include every related resource. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character RevCent discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character RevCent trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character RevCent subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. May be empty and may not include every related resource. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character RevCent subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. May be empty and may not include every related resource. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character RevCent transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character RevCent AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI Thread IDs. May be empty and may not include every related resource. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character RevCent AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs. May be empty and may not include every related resource. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character RevCent PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character RevCent offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character RevCent check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character RevCent salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character RevCent pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs. May be empty and may not include every related resource. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character RevCent chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish whether related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character RevCent fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs. May be empty and may not include every related resource. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character RevCent API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. May be empty and may not include every related resource. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}},"title":"GetCheckDirectSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupons":{"get":{"summary":"Get Coupons","description":"Retrieve the account's available coupons, newest first.","operationId":"GetCoupons","x-api-permission-description":"Allows the retrieval of Coupons.","x-api-permission":"coupon:retrieve","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupons","x-md-link":"","tags":["Coupons"],"parameters":[{"description":"Required maximum number of coupons per page, from 1 to 25. Only limit and page are accepted; this operation does not support date or item filters.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Page 0 returns page 1. The total number of pages may exceed 20, but only pages up to 20 can be requested.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful coupon list response.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of coupons returned on this page.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the coupon was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the coupon.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"name":{"type":"string","description":"The coupon's name, when available. May be empty.","examples":["Black Friday Discount"]},"description":{"type":"string","description":"The coupon's description, when available. May be empty.","examples":["Get 20% off on all items."]},"enabled":{"type":"boolean","description":"Whether the coupon is enabled, when available."},"coupon_code":{"type":"string","description":"The saved code used to request the coupon discount. Omitted when unavailable or empty.","examples":["BLACKFRIDAY20"]},"discount_settings":{"type":"object","additionalProperties":false,"description":"The saved discount configuration, when the type and value are available. Historical values may not satisfy current creation or editing requirements.","properties":{"discount_type":{"type":"string","description":"percent represents a percentage discount; amount represents a fixed discount in the purchase currency.","examples":["percent"],"enum":["percent","amount"]},"discount_value":{"type":"number","description":"The saved discount value. For percent, 15 means 15%; fractional percentages are supported. For amount, use major units of the purchase currency, identified by the purchase (for example, GetSale.iso_currency). Historical zero, negative and fractional values are returned unchanged.","examples":[15]}}},"coupon_profile":{"type":"object","additionalProperties":false,"description":"The available associated coupon profile's ID and name. Omitted when the profile or its summary is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated coupon profile.","type":"string","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"name":{"type":"string","description":"The associated coupon profile's name. May be empty.","examples":["My Coupon Profile"]}}},"start_date":{"type":"string","description":"The optional coupon start timestamp in ISO 8601 UTC format. Omitted when unavailable or invalid.","format":"date-time","examples":["2024-12-30T23:59:59Z"]},"end_date":{"type":"string","description":"The optional coupon end timestamp in ISO 8601 UTC format. Omitted when unavailable or invalid.","format":"date-time","examples":["2024-12-31T23:59:59Z"]},"expired":{"type":"boolean","description":"Whether end_date is strictly earlier than the current time. False at the exact end timestamp and when no valid end date is available. False does not guarantee the coupon can be redeemed."},"num_use":{"type":"integer","description":"The nonnegative number of recorded coupon uses. Returns zero when the count is unavailable or invalid.","examples":[10],"minimum":0},"updated_date_unix":{"description":"When the coupon was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","description":"The coupons on this page, newest first. May be empty.","maxItems":25},"total_count":{"description":"The total number of available coupons for the account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of pages, calculated by dividing total_count by the required limit and rounding up. Zero when no coupons are available. This total may exceed 20, but only pages up to 20 can be requested.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Coupon","description":"Create a coupon.","operationId":"CreateCoupon","x-api-permission-description":"Allows the creation of a new Coupon.","x-api-permission":"coupon:create","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupons","x-md-link":"","tags":["Coupons"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The coupon name.","examples":["Example"]},"description":{"type":"string","description":"The coupon description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the coupon is enabled."},"coupon_code":{"type":"string","description":"The coupon code which customer will use to receive the discount. Must be unique across all coupons in the account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_settings":{"type":"object","additionalProperties":false,"description":"Determines whether a percentage discount or fixed amount discount is applied to the customer purchase when using the coupon.","properties":{"discount_type":{"type":"string","description":"The type of discount applied by the coupon (e.g., percentage or fixed amount).","enum":["percent","amount"],"examples":["percent"]},"discount_value":{"type":"number","description":"The discount value. For amount, supply at least 0.01 in major currency units. For percent, supply a value greater than zero; 15 means 15%. Fractional percentages are supported.","examples":[0]}},"required":["discount_type","discount_value"],"if":{"properties":{"discount_type":{"const":"amount"}},"required":["discount_type"]},"then":{"properties":{"discount_value":{"minimum":0.01}}},"else":{"properties":{"discount_value":{"exclusiveMinimum":0}}}},"coupon_profile":{"type":"string","description":"The 20 character ID of the coupon profile to associate with the coupon.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"start_date":{"type":"string","description":"The coupon start date in ISO 8601 format.","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"end_date":{"type":"string","description":"The coupon end date in ISO 8601 format.","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name","coupon_code","coupon_profile","discount_settings","start_date","end_date"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_id":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupons/{coupon_id}":{"get":{"summary":"Get A Coupon","description":"Retrieve one coupon and its available coupon-profile summary using coupon_id. This operation accepts no query parameters.","operationId":"GetCoupon","x-api-permission-description":"Allows the retrieval of Coupons.","x-api-permission":"coupon:retrieve","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupons","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_id","description":"The 20 character RevCent ID of the coupon to retrieve.","required":true,"schema":{"description":"The 20 character RevCent ID of the coupon to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful coupon detail response.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"When the coupon was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the coupon, matching the requested coupon_id.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"name":{"type":"string","description":"The coupon's name, when available. May be empty.","examples":["Black Friday Discount"]},"description":{"type":"string","description":"The coupon's description, when available. May be empty.","examples":["Get 20% off on all items."]},"enabled":{"type":"boolean","description":"Whether the coupon is enabled, when available."},"coupon_code":{"type":"string","description":"The saved code used to request the coupon discount. Omitted when unavailable or empty.","examples":["BLACKFRIDAY20"]},"discount_settings":{"type":"object","additionalProperties":false,"description":"The saved discount configuration, when the type and value are available. Historical values may not satisfy current creation or editing requirements.","properties":{"discount_type":{"type":"string","description":"percent represents a percentage discount; amount represents a fixed discount in the purchase currency.","examples":["percent"],"enum":["percent","amount"]},"discount_value":{"type":"number","description":"The saved discount value. For percent, 15 means 15%; fractional percentages are supported. For amount, use major units of the purchase currency, identified by the purchase (for example, GetSale.iso_currency). Historical zero, negative and fractional values are returned unchanged.","examples":[15]}}},"coupon_profile":{"type":"object","additionalProperties":false,"description":"The available associated coupon profile's ID and name. Omitted when the profile or its summary is unavailable.","properties":{"id":{"description":"The 20 character RevCent ID of the associated coupon profile.","type":"string","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"name":{"type":"string","description":"The associated coupon profile's name. May be empty.","examples":["My Coupon Profile"]}}},"start_date":{"type":"string","description":"The optional coupon start timestamp in ISO 8601 UTC format. Omitted when unavailable or invalid.","format":"date-time","examples":["2024-12-30T23:59:59Z"]},"end_date":{"type":"string","description":"The optional coupon end timestamp in ISO 8601 UTC format. Omitted when unavailable or invalid.","format":"date-time","examples":["2024-12-31T23:59:59Z"]},"expired":{"type":"boolean","description":"Whether end_date is strictly earlier than the current time. False at the exact end timestamp and when no valid end date is available. False does not guarantee the coupon can be redeemed."},"num_use":{"type":"integer","description":"The nonnegative number of recorded coupon uses. Returns zero when the count is unavailable or invalid.","examples":[10],"minimum":0},"updated_date_unix":{"description":"When the coupon was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Coupon","description":"Edit the details of a specific coupon using the coupon ID. Only the fields provided in the request body will be updated. All other fields will remain unchanged.","operationId":"EditCoupon","x-api-permission-description":"Allows the editing of an existing Coupon.","x-api-permission":"coupon:edit","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupons","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_id","description":"The coupon ID","required":true,"schema":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The coupon name.","examples":["Example"]},"description":{"type":"string","description":"The coupon description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the coupon is enabled."},"coupon_code":{"type":"string","description":"The coupon code which customer will use to receive the discount. Must be unique across all coupons in the account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_settings":{"type":"object","additionalProperties":false,"description":"Determines whether a percentage discount or fixed amount discount is applied to the customer purchase when using the coupon.","properties":{"discount_type":{"type":"string","description":"The type of discount applied by the coupon (e.g., percentage or fixed amount).","enum":["percent","amount"],"examples":["percent"]},"discount_value":{"type":"number","description":"The discount value. For amount, supply at least 0.01 in major currency units. For percent, supply a value greater than zero; 15 means 15%. Fractional percentages are supported.","examples":[0]}},"required":["discount_type","discount_value"],"if":{"properties":{"discount_type":{"const":"amount"}},"required":["discount_type"]},"then":{"properties":{"discount_value":{"minimum":0.01}}},"else":{"properties":{"discount_value":{"exclusiveMinimum":0}}}},"coupon_profile":{"type":"string","description":"The 20 character ID of the coupon profile to associate with the coupon.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"start_date":{"type":"string","description":"The coupon start date in ISO 8601 format.","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"end_date":{"type":"string","description":"The coupon end date in ISO 8601 format.","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_id":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupons/validate":{"get":{"summary":"Validate A Coupon Code","description":"Check whether a coupon code is currently valid and retrieve its discount details when valid. This check does not consume or reserve a use or guarantee applicability to a particular checkout.","operationId":"ValidateCouponCode","x-api-permission-description":"Allows the validation of a coupon code.","x-api-permission":"coupon:validate","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ValidateCouponCode.md","tags":["Coupons"],"parameters":[{"in":"query","name":"coupon_code","description":"Coupon code to validate. Supply one nonblank value, preserving its exact case and any leading or trailing whitespace. No other query parameters are accepted.","schema":{"type":"string","examples":["10percent"]},"required":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Coupon validation result, with coupon details when valid.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Time the API call was initiated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The API response code. A value of 1 indicates successful validation processing; the result indicates whether the coupon is valid.","examples":[1]},"result":{"description":"Validation outcome. Coupon details are returned only for Valid; all other outcomes omit coupon.","type":"string","enum":["Valid","Coupon does not exist.","Coupon disabled.","Coupon profile disabled.","Coupon use limit exceeded.","Coupon expired.","Coupon not yet active."],"examples":["Valid"]},"coupon":{"type":"object","additionalProperties":false,"description":"Coupon details returned only when result is Valid; otherwise this property is omitted, not null.","properties":{"id":{"description":"20 character RevCent ID of the coupon.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"coupon_code":{"type":"string","description":"The coupon code, preserving exact case and whitespace.","examples":["10percent"]},"enabled":{"type":"boolean","description":"Whether the coupon is currently enabled.","examples":[true]},"start_date_unix":{"description":"Coupon start time in Unix seconds. Validity begins after this time; the exact start is not yet active.","type":"integer","format":"unix-time","examples":[1567559820]},"end_date_unix":{"description":"Coupon end time in Unix seconds. Validity ends at this time; the exact end is expired.","type":"integer","format":"unix-time","examples":[1580446800]},"discount_type":{"type":"string","description":"percent identifies a percentage discount; amount identifies a fixed-amount discount.","enum":["percent","amount"],"examples":["percent"]},"discount_value":{"description":"Discount value interpreted using discount_type: for percent, 10 means 10%; for amount, the value is a fixed discount amount.","type":"number","format":"float","examples":[10]},"num_use":{"description":"Number of times this coupon has been used. Returns zero when no usage count is available.","type":"integer","minimum":0,"examples":[43]},"coupon_profile":{"description":"The coupon profile associated with the coupon.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated coupon profile.","minLength":20,"maxLength":20,"examples":["k6vvXQwwNycvJM7yMwzL"]},"enabled":{"type":"boolean","description":"Whether the coupon profile is enabled.","examples":[true]},"num_use_max":{"description":"Maximum permitted uses of this coupon, as configured by its coupon profile. Zero means unlimited, including when no ceiling is configured.","type":"integer","minimum":0,"examples":[0]}}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupons/{coupon_id}/delete":{"post":{"summary":"Delete A Coupon","description":"Delete a specific coupon using the coupon ID and delete path. Not recommended for production use, as it will permanently delete the coupon, potentially affect reporting accuracy and cannot be undone. Use with caution.","operationId":"DeleteCoupon","x-api-permission-description":"Allows the deletion of a coupon.","x-api-permission":"coupon:delete","x-ai-options":[],"x-kb-link":"","x-kb-name":"","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_id","description":"The coupon ID","required":true,"schema":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_id":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupon_profiles":{"get":{"summary":"Get Coupon Profiles","description":"Retrieve available coupon profiles, newest first. Only limit and page are accepted, and both are required.","operationId":"GetCouponProfiles","x-api-permission-description":"Allows the retrieving of coupon profiles.","x-api-permission":"coupon_profile:retrieve","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupon Profiles","x-md-link":"","tags":["Coupons"],"parameters":[{"description":"The maximum number of coupon profiles to return on a page, from 1 to 25. Required; there is no default when omitted.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"The page to retrieve, from 1 to 20. A value of 0 is treated as page 1. Required. total_pages may exceed 20, but higher pages cannot be requested.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful coupon profile list response.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of coupon profiles returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The maximum requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the coupon profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The coupon profile's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"name":{"type":"string","description":"The saved coupon profile name, when available. May be empty.","examples":["My Coupon Profile"]},"description":{"type":"string","description":"The saved coupon profile description, when available. May be empty.","examples":["My awesome coupon profile."]},"enabled":{"type":"boolean","description":"Whether the saved profile is enabled, when available."},"num_use_max":{"type":"integer","description":"The saved maximum uses per coupon. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"proceed_rejected":{"type":"boolean","description":"Whether a sale proceeds without the coupon discount when the coupon is rejected. If false, the sale is rejected instead. Omitted when unavailable.","examples":[true]},"allow_multi_coupon":{"type":"boolean","description":"Whether coupons may be combined with other coupons. Percentage discounts are applied individually, not added into one percentage. Omitted when unavailable.","examples":[false]},"allowed_campaign":{"type":"array","description":"Available campaigns configured as eligible for the coupon. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","title":"Campaign ID","description":"A 20 character RevCent campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"type":"string","description":"The campaign name.","examples":["My Campaign"]}},"type":"object"},"maxItems":50},"apply_to_settings":{"type":"object","description":"Saved settings for the purchase components and later charges eligible for coupon discounts. Unavailable values are omitted; the object may be empty.","additionalProperties":false,"properties":{"apply_to_product":{"type":"boolean","description":"Whether eligible product amounts receive the coupon discount, including eligible trial expirations and subscription renewals. Shipping is controlled separately.","examples":[true]},"apply_to_shipping":{"type":"boolean","description":"Whether eligible shipping amounts receive the coupon discount, independently of apply_to_product. Trial and renewal eligibility is controlled by their respective settings.","examples":[true]},"apply_to_trial":{"type":"boolean","description":"The saved eligibility setting for coupons on trial expiration. Product and shipping discounts use apply_to_product and apply_to_shipping respectively.","examples":[false]},"apply_to_subscription_renewal":{"type":"boolean","description":"Whether coupons are eligible for subscription renewals. Eligible renewal product and shipping discounts use apply_to_product and apply_to_shipping respectively.","examples":[false]},"apply_to_subscription_renewal_num_max":{"type":"integer","description":"The saved maximum discounted renewals when apply_to_subscription_renewal is enabled. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"customer_settings":{"type":"object","description":"Saved coupon-use settings for an individual customer. Unavailable values are omitted; the object may be empty.","additionalProperties":false,"properties":{"num_use_max":{"type":"integer","description":"The saved maximum coupon uses per customer. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"apply_to_future_sale":{"type":"boolean","description":"The saved setting for automatically applying a customer's coupon to future sales. Omitted when unavailable.","examples":[false]},"apply_to_future_sale_num_max":{"type":"integer","description":"The saved maximum future sales for automatic application when apply_to_future_sale is enabled. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"product_settings":{"type":"object","description":"Saved product-group eligibility and discount-target settings. Returned relationships may be incomplete when configured groups are unavailable.","additionalProperties":false,"properties":{"apply_to_product_group":{"type":"array","description":"Available product groups whose products are discount targets for an accepted coupon. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"allowed_product_group":{"type":"array","description":"Available allowed product groups. When configured, purchased products must belong to an allowed group for coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"disallowed_product_group":{"type":"array","description":"Available disallowed product groups. Products in a configured disallowed group prevent coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"required_product_group":{"type":"array","description":"Available required product groups. When configured, at least one purchased product must belong to a required group for coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50}}},"revenue_settings":{"type":"object","description":"Saved revenue thresholds in major units of the purchase's currency. The profile has no currency of its own; use the purchase's currency context, such as GetSale.iso_currency. Unavailable, fractional or invalid values are omitted without rounding; the object may be empty.","additionalProperties":false,"properties":{"min_purchase_amount":{"type":"integer","description":"The saved minimum purchase total in major currency units. Zero means no minimum. Uses the purchase's currency; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"max_discount_amount":{"type":"integer","description":"The saved maximum discount in major currency units. Zero means no maximum. Uses the purchase's currency; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"shop_settings":{"type":"object","description":"Saved settings for linking matching third-party-shop coupon codes to RevCent coupons for associated trials and subscriptions. Linking does not reapply a discount already given on the initial shop purchase.","additionalProperties":false,"properties":{"link_codes_enabled":{"type":"boolean","description":"Whether matching third-party-shop coupon codes are linked. False when not enabled or unavailable.","examples":[false]},"allowed_third_party_shop":{"type":"array","description":"Available third-party shops configured for matching coupon-code linking. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"type":"object","properties":{"id":{"type":"string","description":"A 20 character RevCent user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The third party shop name.","examples":["My Third Party Shop"]}},"additionalProperties":false},"maxItems":50}}},"updated_date_unix":{"description":"When the coupon profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The coupon profiles on this page, newest first. May be empty."},"total_count":{"description":"The total number of available coupon profiles for the account.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of pages, calculated by dividing total_count by the required limit and rounding up. Zero when no profiles are available. This total may exceed 20, but only pages up to 20 can be requested.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false,"title":"GetCouponProfilesSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Coupon Profile","description":"Create a Coupon Profile, which will issue a unique Coupon Profile ID.","operationId":"CreateCouponProfile","x-api-permission-description":"Allows the creation of coupon profiles.","x-api-permission":"coupon_profile:create","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupon Profiles","x-md-link":"","tags":["Coupons"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The coupon profile name. Must be unique across all coupon profiles.","type":"string","examples":["Example"]},"description":{"description":"The coupon profile description.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the coupon profile is currently enabled.","type":"boolean"},"num_use_max":{"type":"integer","description":"Maximum number of global uses for a coupon using this profile. Trial expiration or subscription renewals are not considered uses. 0 = no maximum. Default is 0.","minimum":0,"examples":[0]},"proceed_rejected":{"type":"boolean","description":"Continue processing a sale without any discount if a submitted coupon is rejected. If false, an error will be returned and the sale will not be processed. Set to false if you want the customer to know the coupon is rejected before charging. Set to true if you want to proceed with the sale regardless. Default is true."},"allow_multi_coupon":{"type":"boolean","description":"Allow a coupon to be applied with other coupons using this or any other coupon profile. If allowing multiple coupons, percentage coupons are applied one at a time, not combined as a percentage sum. Default is false."},"allowed_campaign":{"type":"array","description":"An array of one or more campaign ID's which are allowed to use the coupon. If a sale, trial or subscription renewal is not within a selected campaign, the coupon will not be applied. Leave empty to allow all campaigns.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"apply_to_settings":{"type":"object","description":"Set rules and restrictions as to the application of coupons and discount amounts for a customer purchase.","additionalProperties":false,"properties":{"apply_to_product":{"type":"boolean","description":"Apply the discount for a coupon to initial sale product amounts charged at time of purchase. Not applicable to trial expirations or subscription renewals which are charged at a future date. Default is true."},"apply_to_shipping":{"type":"boolean","description":"Apply the discount for a coupon to shipping for initial sales regardless of the apply_to_product setting. Applies to subscription renewal shipping if apply_to_subscription_renewal is enabled and applies to trial expiration shipping if apply_to_trial is enabled. Default is true."},"apply_to_trial":{"type":"boolean","description":"Apply the discount for a coupon to trial product amounts charged when they expire. Default is false."},"apply_to_subscription_renewal":{"type":"boolean","description":"Apply the discount for a coupon to subscriptions that are created during initial sales using this coupon. Upon renewal, coupon discounts will be applied to the subscription renewal product amounts and shipping if apply_to_product and apply_to_shipping are enabled. If apply_to_subscription_renewal is disabled, coupon discounts will not be applied to subscriptions created during initial sales using this coupon. Default is false."},"apply_to_subscription_renewal_num_max":{"type":"integer","description":"The maximum number of subscription renewals to apply the coupon discount, if apply_to_subscription_renewal is enabled. 0 = no maximum. Default is 0.","minimum":0,"examples":[0]}}},"customer_settings":{"type":"object","description":"Apply rules and restrictions on an individual customer who uses a coupon associated with the coupon profile.","additionalProperties":false,"properties":{"num_use_max":{"type":"integer","description":"The maximum number of sales the same customer can use a specific coupon for initial purchases. Trial expiration or subscription renewals are not considered uses. 0 = no maximum. Default is 0.","minimum":0,"examples":[0]},"apply_to_future_sale":{"type":"boolean","description":"Auto apply the coupon used by a customer to future sales for the same customer. When auto applied, max uses per customer are not taken into consideration. Limit the number of future sales auto applied below. Default is false."},"apply_to_future_sale_num_max":{"type":"integer","description":"The maximum number of sales to auto apply if apply_to_future_sale is enabled. 0 = no maximum. Default is 0.","minimum":0,"examples":[0]}}},"product_settings":{"type":"object","description":"Apply rules and restrictions as to products being purchased by the customer and coupons being used.","additionalProperties":false,"properties":{"apply_to_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that will only be applied a discount. If a product being purchased is not within a product group provided, the discount will not apply to the product. I.e. only products within a product group(s) provided will receive a discount from an accepted coupon.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"allowed_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that are allowed for purchase when using a coupon associated with this profile. If a product being purchased is not within a product group provided, the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"disallowed_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that are not allowed for purchase when using a coupon associated with this profile. If a product being purchased is within a product group provided, the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"required_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s), at least one of which is required during purchase when using a coupon associated with this profile. If at least one of the product(s) being purchased is within a product group selected the coupon will be accepted, otherwise the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}}}},"revenue_settings":{"type":"object","description":"Set rules based on the customer purchase and discount amounts.","additionalProperties":false,"properties":{"min_purchase_amount":{"type":"integer","description":"The minimum amount the customer must be charged during initial purchase (and any future trial expiration if Apply To Trial = true) in order for the coupon to be applied. 0 = no minimum. Default is 0.","minimum":0,"examples":[0]},"max_discount_amount":{"type":"integer","description":"The maximum discount amount to be applied. 0 = no maximum. Default is 0.","minimum":0,"examples":[0]}}},"shop_settings":{"type":"object","description":"Link codes submitted from third party shops with coupons created in RevCent using this coupon profile, where both shop and RevCent coupon codes match. This will not re-apply the discount a coupon code already applied to an initial sale on your third party shop. Instead, this is for applying coupons originating from a third party shop, via coupon code entered by a customer on your shop, to a RevCent subscription or trial created as a result of a successful sale.","additionalProperties":false,"properties":{"link_codes_enabled":{"type":"boolean","description":"Whether link codes are enabled. Default is false."},"allowed_third_party_shop":{"type":"array","description":"Array of allowed third party shops to link third party shop coupon codes with coupons created in RevCent.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_profile_id":{"type":"string","description":"A 20 character coupon profile ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupon_profiles/{coupon_profile_id}":{"get":{"summary":"Get A Coupon Profile","description":"Retrieve one coupon profile and its available configured relationships using coupon_profile_id. This operation accepts no query parameters.","operationId":"GetCouponProfile","x-api-permission-description":"Allows the retrieving of coupon profiles.","x-api-permission":"coupon_profile:retrieve","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupon Profiles","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_profile_id","description":"The 20 character RevCent ID of the coupon profile to retrieve.","required":true,"schema":{"description":"The 20 character RevCent ID of the coupon profile to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful coupon profile detail response.","properties":{"api_call_id":{"type":"string","description":"The 20 character RevCent ID of this retrieval request.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the coupon profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The 20 character RevCent ID of the coupon profile, matching the requested coupon_profile_id.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"name":{"type":"string","description":"The saved coupon profile name, when available. May be empty.","examples":["My Coupon Profile"]},"description":{"type":"string","description":"The saved coupon profile description, when available. May be empty.","examples":["My awesome coupon profile."]},"enabled":{"type":"boolean","description":"Whether the saved profile is enabled, when available."},"num_use_max":{"type":"integer","description":"The saved maximum uses per coupon. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"proceed_rejected":{"type":"boolean","description":"Whether a sale proceeds without the coupon discount when the coupon is rejected. If false, the sale is rejected instead. Omitted when unavailable.","examples":[true]},"allow_multi_coupon":{"type":"boolean","description":"Whether coupons may be combined with other coupons. Percentage discounts are applied individually, not added into one percentage. Omitted when unavailable.","examples":[false]},"allowed_campaign":{"type":"array","description":"Available campaigns configured as eligible for the coupon. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","title":"Campaign ID","description":"A 20 character RevCent campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"type":"string","description":"The campaign name.","examples":["My Campaign"]}},"type":"object"},"maxItems":50},"apply_to_settings":{"type":"object","description":"Saved settings for the purchase components and later charges eligible for coupon discounts. Unavailable values are omitted; the object may be empty.","additionalProperties":false,"properties":{"apply_to_product":{"type":"boolean","description":"Whether eligible product amounts receive the coupon discount, including eligible trial expirations and subscription renewals. Shipping is controlled separately.","examples":[true]},"apply_to_shipping":{"type":"boolean","description":"Whether eligible shipping amounts receive the coupon discount, independently of apply_to_product. Trial and renewal eligibility is controlled by their respective settings.","examples":[true]},"apply_to_trial":{"type":"boolean","description":"The saved eligibility setting for coupons on trial expiration. Product and shipping discounts use apply_to_product and apply_to_shipping respectively.","examples":[false]},"apply_to_subscription_renewal":{"type":"boolean","description":"Whether coupons are eligible for subscription renewals. Eligible renewal product and shipping discounts use apply_to_product and apply_to_shipping respectively.","examples":[false]},"apply_to_subscription_renewal_num_max":{"type":"integer","description":"The saved maximum discounted renewals when apply_to_subscription_renewal is enabled. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"customer_settings":{"type":"object","description":"Saved coupon-use settings for an individual customer. Unavailable values are omitted; the object may be empty.","additionalProperties":false,"properties":{"num_use_max":{"type":"integer","description":"The saved maximum coupon uses per customer. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"apply_to_future_sale":{"type":"boolean","description":"The saved setting for automatically applying a customer's coupon to future sales. Omitted when unavailable.","examples":[false]},"apply_to_future_sale_num_max":{"type":"integer","description":"The saved maximum future sales for automatic application when apply_to_future_sale is enabled. Zero means no maximum; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"product_settings":{"type":"object","description":"Saved product-group eligibility and discount-target settings. Returned relationships may be incomplete when configured groups are unavailable.","additionalProperties":false,"properties":{"apply_to_product_group":{"type":"array","description":"Available product groups whose products are discount targets for an accepted coupon. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"allowed_product_group":{"type":"array","description":"Available allowed product groups. When configured, purchased products must belong to an allowed group for coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"disallowed_product_group":{"type":"array","description":"Available disallowed product groups. Products in a configured disallowed group prevent coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50},"required_product_group":{"type":"array","description":"Available required product groups. When configured, at least one purchased product must belong to a required group for coupon eligibility. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"type":"string","description":"The product group name.","examples":["My Product Group"]}},"type":"object"},"maxItems":50}}},"revenue_settings":{"type":"object","description":"Saved revenue thresholds in major units of the purchase's currency. The profile has no currency of its own; use the purchase's currency context, such as GetSale.iso_currency. Unavailable, fractional or invalid values are omitted without rounding; the object may be empty.","additionalProperties":false,"properties":{"min_purchase_amount":{"type":"integer","description":"The saved minimum purchase total in major currency units. Zero means no minimum. Uses the purchase's currency; omitted when unavailable or invalid.","minimum":0,"examples":[0]},"max_discount_amount":{"type":"integer","description":"The saved maximum discount in major currency units. Zero means no maximum. Uses the purchase's currency; omitted when unavailable or invalid.","minimum":0,"examples":[0]}}},"shop_settings":{"type":"object","description":"Saved settings for linking matching third-party-shop coupon codes to RevCent coupons for associated trials and subscriptions. Linking does not reapply a discount already given on the initial shop purchase.","additionalProperties":false,"properties":{"link_codes_enabled":{"type":"boolean","description":"Whether matching third-party-shop coupon codes are linked. False when not enabled or unavailable.","examples":[false]},"allowed_third_party_shop":{"type":"array","description":"Available third-party shops configured for matching coupon-code linking. Returns up to 50 available id/name pairs. An empty array may reflect unavailable relationships and does not establish that the saved configuration is unrestricted.","items":{"type":"object","properties":{"id":{"type":"string","description":"A 20 character RevCent user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The third party shop name.","examples":["My Third Party Shop"]}},"additionalProperties":false},"maxItems":50}}},"updated_date_unix":{"description":"When the coupon profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"GetCouponProfileSuccessResponse","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Coupon Profile","description":"Edit a previously created coupon profile using the coupon profile ID. Only supplied fields are updated.","operationId":"EditCouponProfile","x-api-permission-description":"Allows the editing of coupon profiles.","x-api-permission":"coupon_profile:edit","x-ai-options":[],"x-kb-link":"https://kb.revcent.com/payments/coupon","x-kb-name":"Coupon Profiles","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_profile_id","description":"The coupon profile ID","required":true,"schema":{"type":"string","description":"A 20 character coupon profile ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The coupon profile name. Must be unique across all coupon profiles.","type":"string","examples":["Example"]},"description":{"description":"The coupon profile description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the coupon profile is currently enabled.","type":"boolean"},"num_use_max":{"type":"integer","description":"Maximum number of global uses for a coupon using this profile. Trial expiration or subscription renewals are not considered uses. 0 = no maximum.","minimum":0,"examples":[0]},"proceed_rejected":{"type":"boolean","description":"Continue processing a sale without any discount if a submitted coupon is rejected. If false, an error will be returned and the sale will not be processed. Set to false if you want the customer to know the coupon is rejected before charging. Set to true if you want to proceed with the sale regardless. Default is true."},"allow_multi_coupon":{"type":"boolean","description":"Allow a coupon to be applied with other coupons using this or any other coupon profile. If allowing multiple coupons, percentage coupons are applied one at a time, not combined as a percentage sum. Default is false."},"allowed_campaign":{"type":"array","description":"An array of one or more campaign ID's which are allowed to use the coupon. If a sale, trial or subscription renewal is not within a selected campaign, the coupon will not be applied. Leave empty to allow all campaigns.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"apply_to_settings":{"type":"object","description":"Set rules and restrictions as to the application of coupons and discount amounts for a customer purchase.","additionalProperties":false,"properties":{"apply_to_product":{"type":"boolean","description":"Apply the discount for a coupon to initial sale product amounts charged at time of purchase. Not applicable to trial expirations or subscription renewals which are charged at a future date. Default is true."},"apply_to_shipping":{"type":"boolean","description":"Apply the discount for a coupon to shipping for initial sales regardless of the apply_to_product setting. Applies to subscription renewal shipping if apply_to_subscription_renewal is enabled and applies to trial expiration shipping if apply_to_trial is enabled. Default is true."},"apply_to_trial":{"type":"boolean","description":"Apply the discount for a coupon to trial product amounts charged when they expire. Default is false."},"apply_to_subscription_renewal":{"type":"boolean","description":"Apply the discount for a coupon to subscriptions that are created during initial sales using this coupon. Upon renewal, coupon discounts will be applied to the subscription renewal product amounts and shipping if apply_to_product and apply_to_shipping are enabled. If apply_to_subscription_renewal is disabled, coupon discounts will not be applied to subscriptions created during initial sales using this coupon. Default is false."},"apply_to_subscription_renewal_num_max":{"type":"integer","description":"The maximum number of subscription renewals to apply the coupon discount, if apply_to_subscription_renewal is enabled. 0 = no maximum.","minimum":0,"examples":[0]}}},"customer_settings":{"type":"object","description":"Apply rules and restrictions on an individual customer who uses a coupon associated with the coupon profile.","additionalProperties":false,"properties":{"num_use_max":{"type":"integer","description":"The maximum number of sales the same customer can use a specific coupon for initial purchases. Trial expiration or subscription renewals are not considered uses. 0 = no maximum.","minimum":0,"examples":[0]},"apply_to_future_sale":{"type":"boolean","description":"Auto apply the coupon used by a customer to future sales for the same customer. When auto applied, max uses per customer are not taken into consideration. Limit the number of future sales auto applied below. Default is false."},"apply_to_future_sale_num_max":{"type":"integer","description":"The maximum number of sales to auto apply if apply_to_future_sale is enabled. 0 = no maximum.","minimum":0,"examples":[0]}}},"product_settings":{"type":"object","description":"Apply rules and restrictions as to products being purchased by the customer and coupons being used.","additionalProperties":false,"properties":{"apply_to_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that will only be applied a discount. If a product being purchased is not within a product group provided, the discount will not apply to the product. I.e. only products within a product group(s) provided will receive a discount from an accepted coupon.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"allowed_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that are allowed for purchase when using a coupon associated with this profile. If a product being purchased is not within a product group provided, the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"disallowed_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s) that are not allowed for purchase when using a coupon associated with this profile. If a product being purchased is within a product group provided, the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"required_product_group":{"type":"array","description":"An array of one or more product group ID's which contain product(s), at least one of which is required during purchase when using a coupon associated with this profile. If at least one of the product(s) being purchased is within a product group selected the coupon will be accepted, otherwise the coupon will be rejected entirely.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}}}},"revenue_settings":{"type":"object","description":"Set rules based on the customer purchase and discount amounts.","additionalProperties":false,"properties":{"min_purchase_amount":{"type":"integer","description":"The minimum amount the customer must be charged during initial purchase (and any future trial expiration if Apply To Trial = true) in order for the coupon to be applied. 0 = no minimum.","minimum":0,"examples":[0]},"max_discount_amount":{"type":"integer","description":"The maximum discount amount to be applied. 0 = no maximum.","minimum":0,"examples":[0]}}},"shop_settings":{"type":"object","description":"Link codes submitted from third party shops with coupons created in RevCent using this coupon profile, where both shop and RevCent coupon codes match. This will not re-apply the discount a coupon code already applied to an initial sale on your third party shop. Instead, this is for applying coupons originating from a third party shop, via coupon code entered by a customer on your shop, to a RevCent subscription or trial created as a result of a successful sale.","additionalProperties":false,"properties":{"link_codes_enabled":{"type":"boolean","description":"Whether link codes are enabled. Default is false."},"allowed_third_party_shop":{"type":"array","description":"Array of allowed third party shops to link third party shop coupon codes with coupons created in RevCent.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_profile_id":{"type":"string","description":"A 20 character coupon profile ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/coupon_profiles/{coupon_profile_id}/delete":{"post":{"summary":"Delete A Coupon Profile","description":"Delete a specific coupon profile using the coupon profile ID and delete path.","operationId":"DeleteCouponProfile","x-api-permission-description":"Allows the deletion of coupon profiles.","x-api-permission":"coupon_profile:delete","x-ai-options":[],"x-kb-link":"","x-kb-name":"","x-md-link":"","tags":["Coupons"],"parameters":[{"in":"path","name":"coupon_profile_id","description":"The Coupon Profile ID","required":true,"schema":{"type":"string","description":"A 20 character coupon profile ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"coupon_profile_id":{"type":"string","description":"A 20 character coupon profile ID.","minLength":20,"maxLength":20,"examples":["EanlVPml7cQ9JaXmrpbV"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers":{"get":{"summary":"Get Customers","description":"Retrieve customer summaries matching a creation-date range and optional filters, newest first. Use GetCustomer for an individual customer’s details.","operationId":"GetCustomers","x-api-permission-description":"Allows the retrieval of Customers.","x-api-permission":"customer:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The elapsed time between date_start and date_end must be less than 95 days (maximum 8,207,999 seconds).","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCustomers.md","tags":["Customers"],"parameters":[{"description":"Inclusive start of the customer creation-date range, as a Unix timestamp in seconds. The elapsed range must be less than 95 days (maximum 8,207,999 seconds).","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the customer creation-date range, as a Unix timestamp in seconds. Must be at or after date_start and less than 95 days later. Equal dates return no matches.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Required number of customers per page, from 1 to 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. A value of 0 requests page 1. Later pages may exist, but only pages 1–20 can be requested.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter customers associated with any of the supplied campaigns. Accepts up to 50 distinct IDs. Combined with the creation-date range and other filters. Supplying this filter includes matching campaigns even when they are excluded from default customer lists.","required":false,"schema":{"type":"array","items":{"description":"The 20 character RevCent ID of a campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"customer_group_filter","in":"query","description":"Filter customers associated with any of the supplied customer groups. Accepts up to 50 distinct IDs. Combined with the creation-date range and other filters.","required":false,"schema":{"type":"array","items":{"description":"The 20 character RevCent ID of a customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"name":"product_filter","in":"query","description":"Filter customers associated with any of the supplied purchased products. Accepts up to 50 distinct IDs. Combined with the creation-date range and other filters.","required":false,"schema":{"type":"array","items":{"description":"The 20 character RevCent ID of a purchased product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by any of the selected current statuses: enabled, disabled, blocked, fraud (Fraud Detected), or chargeback. Matches the status returned for each customer. Status precedence is Blocked, Disabled, Chargeback, Fraud Detected, then Enabled. Chargeback and fraud status use qualifying linked records from the same account and mode, excluding archived records and requiring confirmed non-false-positive fraud. Selected statuses are alternatives and match the displayed status.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["enabled","disabled","blocked","fraud","chargeback"],"examples":["enabled","blocked"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Values for the same name use OR; different names use AND. METADATA_NAME_EXISTS matches any value for that name and supersedes literal values for the same name. Accepts repeated JSON objects or metadata_filter[n][name] and metadata_filter[n][value] query parameters.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"The 20 character RevCent ID of the customer to include. Accepts one ID; the customer must also match the creation-date range and other filters.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Customer summaries for the requested page and the matching result counts.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"The current number of items in the results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The returned page number; requested page 0 is treated as 1. The maximum requestable page is 20.","type":"integer","examples":[1]},"results":{"type":"array","maxItems":25,"description":"The customers returned for the current page.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer's saved first address line. Empty and historical text is preserved; omitted when unavailable.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer's saved second address line. Empty and historical text is preserved; omitted when unavailable.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"The customer's blocked flag, when available as a boolean.","examples":[false]},"city":{"type":"string","description":"The customer's saved city. Empty and historical text is preserved; omitted when unavailable.","examples":["Washington"]},"company":{"type":"string","description":"The customer's saved company. Empty and historical text is preserved; omitted when unavailable.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized three-letter ISO 3166-1 alpha-3 country code, in uppercase. Omitted when unavailable or invalid.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's saved email address. Empty and historical text is preserved; omitted when unavailable.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer's saved first name. Empty and historical text is preserved; omitted when unavailable.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer. Empty or historical text is preserved; omitted when unavailable.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer's saved last name. Empty and historical text is preserved; omitted when unavailable.","examples":["Washington"]},"phone":{"type":"string","description":"The available international display number, falling back to the saved phone value. Empty or historical text may be returned; omitted when unavailable.","examples":["1234567890"]},"state":{"type":"string","description":"The customer's saved state or region. Empty and historical text is preserved; omitted when unavailable.","examples":["DC"]},"zip":{"type":"string","description":"The customer's saved postal code. Empty and historical text is preserved; omitted when unavailable.","examples":["20500"]},"created_date_unix":{"description":"Creation time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID. Returned together with campaign_name; both are omitted when the summary is unavailable or invalid.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name; may be empty. Returned together with campaign_id.","examples":["AdWords Campaign"]},"enabled":{"type":"boolean","description":"The customer's enabled flag, when available as a boolean."},"customer_group":{"type":"array","maxItems":50,"description":"Available summaries from the first 50 customer-group references, preserving order and duplicates. Unavailable or invalid summaries are omitted; this is not necessarily complete membership.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The customer group name; may be empty.","examples":["My Customer Group"]}}}},"lifetime_value":{"type":"object","additionalProperties":false,"description":"Available lifetime monetary totals. Amounts use the underlying activities’ major currency units, without conversion or a guaranteed common currency. Use individual activity records for currency-specific amounts. Omitted when no totals are available.","properties":{"all":{"type":"object","additionalProperties":false,"minProperties":1,"description":"Available totals across the customer’s activity. Unavailable amounts are omitted; historical numeric values are returned unchanged.","properties":{"amount_gross":{"description":"Gross payments after refunds.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net payment amounts after refunds and fees.","type":"number","format":"float","examples":[115.55]},"amount_refunded":{"description":"Refunded amounts, including cancelled trial amounts where applicable.","type":"number","format":"float","examples":[3.21]},"amount_remaining":{"description":"Amounts remaining to be collected, including pending trial expirations and salvage amounts.","type":"number","format":"float","examples":[2.23]},"amount_to_salvage":{"description":"Amounts awaiting collection through salvage processing.","type":"number","format":"float","examples":[2.23]},"amount_total":{"description":"Total amounts after applied discounts and refunds.","type":"number","format":"float","examples":[124.55]},"amount_discounted":{"description":"Discount amounts applied to the customer's activity.","type":"number","format":"float","examples":[15.44]}}}}},"status":{"type":"string","description":"The customer's current status. Status precedence is Blocked, Disabled, Chargeback, Fraud Detected, then Enabled. Chargeback and fraud status use qualifying linked records from the same account and mode, excluding archived records and requiring confirmed non-false-positive fraud. Selected statuses are alternatives and match the displayed status. status_filter selects these same outcomes.","enum":["Enabled","Disabled","Blocked","Chargeback","Fraud Detected"],"examples":["Enabled","Disabled","Blocked","Chargeback","Fraud Detected"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 valid metadata entries, preserving their text and order. Names contain 1–100 characters and values 1–255 characters; unavailable metadata returns an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}}}},"updated_date_unix":{"description":"Last update time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}}},"total_count":{"minimum":0,"description":"The total number of available customers matching all effective filters, including default campaign exclusions when no campaign_filter is supplied.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"The number of matching result pages, calculated using the requested limit and rounded up. This can exceed the maximum requestable page of 20.","type":"integer","examples":[3]}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Customer","description":"Create a customer before a purchase, such as a prospect. Customers can also be created during their initial sale.","operationId":"CreateCustomer","x-api-permission-description":"Allows the creation of a new Customer.","x-api-permission":"customer:create","x-ai-options":["ai_assistant","mcp","ai_voice_agent"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateCustomer.md","tags":["Customers"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"campaign":{"type":"string","minLength":1,"description":"Existing campaign name or public RevCent campaign ID, resolved within the authenticated account. Must contain at least one non-whitespace character.","examples":["Example Campaign"]},"customer":{"description":"The customer object receives first priority as details when creating a new customer.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name","email"]},"bill_to":{"description":"To use as the billing information. If not present the customer object will be used. Useful when simultaneously adding a credit card with separate billing information.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The bill to email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name","email"]},"payment":{"description":"If you wish to add a payment method with the customer upon creation.","additionalProperties":false,"properties":{"credit_card":{"description":"The credit card you wish to create and attach to the customer.","additionalProperties":false,"properties":{"card_number":{"description":"The full credit card number, digits only.","type":"string","examples":["4242424242424242"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","examples":[12,1]},"exp_year":{"description":"The credit card expiration year as a two digit integer, i.e. YY.","type":"integer","examples":[29,32]},"card_code":{"description":"The credit card code as a string, digits only. Depending on the card type this can be different lengths.","type":"string","examples":["999"]}},"type":"object"}},"type":"object"},"internal_customer_id":{"description":"Your customer reference, such as a customer ID from another service. For reference only; it cannot be used to select a customer.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["campaign","customer"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}":{"get":{"summary":"Get A Customer","description":"Retrieve a customer’s details using the customer ID, including payment methods and limited selections of related activity.","operationId":"GetCustomer","x-api-permission-description":"Allows the retrieval of customers.","x-api-permission":"customer:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"If you do not have the customer ID, use the SearchCustomers > GetCustomer method. Search for a customer using the SearchCustomers operation using a search term, then use the id property within an individual search result with the GetCustomer operation.<br><br>Important: If using the SearchCustomers > GetCustomer method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed the customer using a secondary non-provided value, such as the ZIP code in the GetCustomer response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetCustomer.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The 20 character RevCent ID of the customer to retrieve.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The customer’s details, saved payment methods, and limited selections of related activity.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","enum":[1],"description":"The API response code; 1 indicates successful customer retrieval.","examples":[1]},"id":{"description":"The customer’s 20 character RevCent ID, matching the requested customer_id.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"created_date_unix":{"description":"Creation time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Last update time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"first_name":{"type":"string","description":"The customer's saved first name. Empty and historical text is preserved; omitted when unavailable.","examples":["George"]},"last_name":{"type":"string","description":"The customer's saved last name. Empty and historical text is preserved; omitted when unavailable.","examples":["Washington"]},"email":{"type":"string","description":"The customer's saved email. Empty and historical text is preserved; omitted when unavailable.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The available international display number, falling back to the saved phone value. Empty or historical text may be returned; omitted when unavailable.","examples":["1234567890"]},"company":{"type":"string","description":"The customer's saved company. Empty and historical text is preserved; omitted when unavailable.","examples":["Acme Inc."]},"internal_id":{"type":"string","description":"Your own reference for the customer, such as an ID from another system; may be empty. Omitted when unavailable.","examples":["pres_01"]},"address_line_1":{"type":"string","description":"The customer's saved address line 1. Empty and historical text is preserved; omitted when unavailable.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer's saved address line 2. Empty and historical text is preserved; omitted when unavailable.","examples":["West Wing"]},"city":{"type":"string","description":"The customer's saved city. Empty and historical text is preserved; omitted when unavailable.","examples":["Washington"]},"state":{"type":"string","description":"The customer’s saved state or region; may be empty. Omitted when unavailable.","examples":["DC"]},"zip":{"type":"string","description":"The customer’s saved ZIP or postal code; may be empty. Omitted when unavailable.","examples":["20500"]},"country":{"type":"string","description":"The recognized three-letter ISO 3166-1 alpha-3 country code, in uppercase. Omitted when unavailable or invalid.","minLength":3,"maxLength":3,"examples":["USA"]},"enabled":{"type":"boolean","description":"The customer's enabled flag, when available as a boolean."},"blocked":{"type":"boolean","description":"The customer's blocked flag, when available as a boolean.","examples":[false]},"status":{"type":"string","enum":["Enabled","Disabled","Blocked","Chargeback","Fraud Detected"],"description":"The customer's status. Status precedence is Blocked, Disabled, Chargeback, Fraud Detected, then Enabled. Chargeback and fraud status use qualifying linked records from the same account and mode, excluding archived records and requiring confirmed non-false-positive fraud. Selected statuses are alternatives and match the displayed status. A qualifying event need not appear in the limited related-ID arrays.","examples":["Enabled","Disabled","Blocked","Chargeback","Fraud Detected"]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID. Returned together with campaign_name; both are omitted when the summary is unavailable or invalid.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name; may be empty. Returned together with campaign_id.","examples":["AdWords Campaign"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 valid metadata entries in their original order and text, with name/value lengths 1–100/1–255. Unavailable metadata returns an empty array.","items":{"type":"object","additionalProperties":false,"description":"A customer metadata name and value pair.","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"customer_card":{"type":"array","maxItems":50,"description":"Up to 50 available legacy saved card summaries from a limited selection. This compatibility collection may overlap customer_payment_method and is not complete card history.","items":{"type":"object","additionalProperties":false,"description":"Safe payment-card metadata associated with the customer.","properties":{"id":{"type":"string","description":"A 20 character saved card ID.","minLength":20,"maxLength":20,"examples":["ALAGkvj0O7u5rdmVggQ7"]},"type":{"type":"string","description":"Card type.","examples":["visa"]},"first_6":{"type":"string","minLength":6,"maxLength":6,"description":"The first six digits of the card number, when available.","examples":["424242"]},"last_4":{"type":"string","minLength":4,"maxLength":4,"description":"The final four digits of the card number, when available.","examples":["4242"]},"expiry_date":{"type":"string","description":"The expiration month and two-digit year in MM/YY format.","examples":["12/29"]},"expiry_month":{"type":"string","description":"The two-digit expiration month, from 01 to 12.","examples":["12"]},"expiry_year":{"type":"string","description":"The four-digit expiration year in YYYY format.","examples":["2029"]},"is_default":{"type":"boolean","description":"Whether the card is set as the customers default payment method.","examples":[true]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"Customer Credit Card"}},"customer_group":{"type":"array","maxItems":50,"description":"Up to 50 available customer-group summaries from a limited selection of associations. Empty output does not establish that the customer has no memberships.","items":{"type":"object","additionalProperties":false,"description":"A customer group associated with the customer.","properties":{"id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Customer group name.","examples":["My Customer Group"]}}}},"lifetime_value":{"type":"object","additionalProperties":false,"description":"Available lifetime monetary totals and activity counts. Saved numeric values are returned unchanged, including historical negative or fractional values. Unavailable values are omitted; sections may be empty. Monetary values use the underlying activities’ major currency units, without conversion or a guaranteed common currency.","properties":{"all":{"type":"object","additionalProperties":false,"description":"Totals across the customer’s activity.","properties":{"amount_discounted":{"format":"double","description":"Discount amounts applied to the customer's activity.","type":"number","examples":[15.44]},"amount_gross":{"format":"double","description":"Gross payments after refunds.","type":"number","examples":[119.11]},"amount_net":{"format":"double","description":"Net payment amounts after refunds and fees.","type":"number","examples":[115.55]},"amount_refunded":{"format":"double","description":"Refunded amounts, including cancelled trial amounts where applicable.","type":"number","examples":[3.21]},"amount_remaining":{"format":"double","description":"Amounts remaining to be collected, including pending trial expirations and salvage amounts.","type":"number","examples":[2.23]},"amount_to_salvage":{"format":"double","description":"Amounts awaiting collection through salvage processing.","type":"number","examples":[2.23]},"amount_total":{"format":"double","description":"Total amounts after applied discounts and refunds.","type":"number","examples":[124.55]}}},"sale":{"type":"object","additionalProperties":false,"description":"Lifetime values for sales.","properties":{"amount_discounted":{"format":"double","description":"Discount amounts applied to the customer's activity.","type":"number","examples":[15.44]},"amount_gross":{"format":"double","description":"Gross payments after refunds.","type":"number","examples":[119.11]},"amount_net":{"format":"double","description":"Net payment amounts after refunds and fees.","type":"number","examples":[115.55]},"amount_refunded":{"format":"double","description":"Refunded amounts, including cancelled trial amounts where applicable.","type":"number","examples":[3.21]},"amount_remaining":{"format":"double","description":"Amounts remaining to be collected, including pending trial expirations and salvage amounts.","type":"number","examples":[2.23]},"amount_to_salvage":{"format":"double","description":"Amounts awaiting collection through salvage processing.","type":"number","examples":[2.23]},"amount_total":{"format":"double","description":"Total amounts after applied discounts and refunds.","type":"number","examples":[124.55]},"num":{"type":"number","description":"The total number of sales.","examples":[1]},"avg":{"type":"number","format":"double","description":"Available average activity amount.","examples":[124.55]}}},"subscription_renewal":{"type":"object","additionalProperties":false,"description":"Lifetime values for subscription renewals.","properties":{"amount_discounted":{"format":"double","description":"Discount amounts applied to the customer's activity.","type":"number","examples":[15.44]},"amount_gross":{"format":"double","description":"Gross payments after refunds.","type":"number","examples":[119.11]},"amount_net":{"format":"double","description":"Net payment amounts after refunds and fees.","type":"number","examples":[115.55]},"amount_refunded":{"format":"double","description":"Refunded amounts, including cancelled trial amounts where applicable.","type":"number","examples":[3.21]},"amount_remaining":{"format":"double","description":"Amounts remaining to be collected, including pending trial expirations and salvage amounts.","type":"number","examples":[2.23]},"amount_to_salvage":{"format":"double","description":"Amounts awaiting collection through salvage processing.","type":"number","examples":[2.23]},"amount_total":{"format":"double","description":"Total amounts after applied discounts and refunds.","type":"number","examples":[124.55]},"num":{"type":"number","description":"The total number of subscription renewals.","examples":[1]},"avg":{"type":"number","format":"double","description":"Available average activity amount.","examples":[49.99]},"num_overdue":{"type":"number","description":"The total number of overdue subscription renewals.","examples":[0]}}},"chargeback":{"type":"object","additionalProperties":false,"description":"Lifetime values for chargebacks.","properties":{"amount":{"type":"number","format":"double","description":"Available lifetime amount for chargebacks.","examples":[0]},"num":{"type":"number","description":"Available lifetime count of chargebacks.","examples":[0]},"avg":{"type":"number","format":"double","description":"Available average amount for chargebacks.","examples":[0]}}},"fraud_detection":{"type":"object","additionalProperties":false,"description":"Lifetime values for fraud detections.","properties":{"amount":{"type":"number","format":"double","description":"Available lifetime amount for fraud detections."},"num":{"type":"number","description":"Available lifetime count of fraud detections.","examples":[0]},"avg":{"type":"number","format":"double","description":"Available average amount for fraud detections."}}},"pending_refund":{"type":"object","additionalProperties":false,"description":"Lifetime pending-refund counts.","properties":{"num":{"type":"number","description":"The number of pending refunds.","examples":[0]}}},"last_sale_date":{"type":"string","format":"date-time","description":"The available last sale time in ISO8601 UTC format; omitted when unavailable.","examples":["2021-08-03T23:59:59-04:00"]},"last_subscription_renewal_date":{"type":"string","format":"date-time","description":"The available last subscription-renewal time in ISO8601 UTC format; omitted when unavailable.","examples":["2021-08-03T23:59:59-04:00"]}}},"notes":{"type":"array","maxItems":10,"description":"Up to 10 available recent notes from a limited selection. This is not complete note history; the array may be empty.","items":{"type":"object","additionalProperties":false,"description":"A note associated with the customer.","properties":{"id":{"type":"string","description":"A 20 character note ID.","minLength":20,"maxLength":20,"examples":["9r0NrKQ864FaOrmOYmQn"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"subject":{"type":"string","description":"The available note subject, including empty or historical text; omitted when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"text":{"type":"string","minLength":1,"maxLength":255,"description":"The text content of the note.","examples":["Customer called and asked to about their order."]},"username":{"type":"string","description":"The available author's username; may be empty or omitted.","examples":["JohnD"]},"employee_id":{"description":"The author's available 20 character RevCent user ID; omitted when unavailable or invalid.","type":"string","minLength":20,"maxLength":20,"examples":["mWwZ8KyrOLNOOdbbdUbQ"]},"is_ai_assistant":{"type":"boolean","description":"Whether the note was created by an AI assistant."},"ai_assistant":{"type":"object","additionalProperties":false,"description":"The available assistant summary when is_ai_assistant is true; omitted when unavailable or invalid.","properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent AI assistant ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The AI assistant name.","examples":["Example"]}}},"customer_note_related_type":{"type":"string","description":"The available related-item type; historical or empty text may be returned.","examples":["sale"]},"customer_note_related_id":{"type":"string","minLength":20,"maxLength":20,"description":"The available related item's 20 character RevCent ID, returned only alongside its type; omitted when unavailable or invalid.","examples":["O0O0LON20nTaNQ6gg6Lm"]}}}},"products_purchased":{"type":"array","maxItems":10,"description":"Product summaries from a limited selection of up to 10 recent product sales. These cover only the selected purchases. Monetary values use those sales’ major currency units, without conversion or a guaranteed common currency. Unavailable products are omitted.","items":{"type":"object","additionalProperties":false,"description":"One product's totals within the selected recent product sales only. Amounts use those sales' major currency units; no common currency or conversion is guaranteed.","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["USB HDD"]},"internal_id":{"type":"string","description":"Your own reference for the product, such as an ID from another system.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The product SKU.","examples":["usb_hdd"]},"quantity":{"type":"integer","description":"The summed quantity within the selected product sales, rounded to a whole number. Unavailable quantities contribute zero.","examples":[1]},"price":{"type":"number","format":"double","description":"The arithmetic mean of available prices within the selected product sales, equally weighted per entry rather than by quantity, rounded to two decimals. Omitted when no price is available.","examples":[249.99]},"amount_gross":{"type":"number","format":"double","description":"Gross amount within the selected product sales, rounded to two decimals; unavailable amounts contribute zero.","examples":[249.99]},"amount_refunded":{"type":"number","format":"double","description":"Refunded amount within the selected product sales, rounded to two decimals; unavailable amounts contribute zero.","examples":[0]},"purchase_count":{"type":"integer","minimum":1,"description":"The number of selected product-sale entries for this product, not the customer's lifetime purchase count.","examples":[1]},"purchase_dates":{"type":"array","description":"Available creation times of the selected product sales, in Unix seconds; unavailable dates are omitted. This is not complete purchase history.","items":{"type":"integer","format":"unix-time","description":"The Unix timestamp of one product purchase.","examples":[1675367500]}}}}},"sales":{"type":"array","maxItems":10,"description":"Up to 10 available sales IDs from a limited selection. This is not complete history. Retrieve the details of each sale_id using the GetSale operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}},"product_sales":{"type":"array","maxItems":10,"description":"Up to 10 available product sales IDs from a limited selection. This is not complete history. Retrieve the details of each product_sale_id using the GetProductSale operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}},"shipping":{"type":"array","maxItems":10,"description":"Up to 10 available shipping IDs from a limited selection. This is not complete history. Retrieve the details of each shipping_id using the GetShipment operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}},"tax":{"type":"array","maxItems":10,"description":"Up to 10 available tax IDs from a limited selection. This is not complete history. Retrieve the details of each tax_id using the GetTax operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}},"discounts":{"type":"array","maxItems":10,"description":"Up to 10 available discounts IDs from a limited selection. This is not complete history. Retrieve the details of each discount_id using the GetDiscount operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]}},"trials":{"type":"array","maxItems":10,"description":"Up to 10 available trials IDs from a limited selection. This is not complete history. Retrieve the details of each trial_id using the GetTrial operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}},"subscriptions":{"type":"array","maxItems":10,"description":"Up to 10 available subscriptions IDs from a limited selection. This is not complete history. Retrieve the details of each subscription_id using the GetSubscription operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}},"subscription_renewals":{"type":"array","maxItems":10,"description":"Up to 10 available subscription renewals IDs from a limited selection. This is not complete history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]}},"transactions":{"type":"array","maxItems":10,"description":"Up to 10 available transactions IDs from a limited selection. This is not complete history. Retrieve the details of each transaction_id using the GetTransaction operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"salvage_transactions":{"type":"array","maxItems":10,"description":"Up to 10 available salvage transactions IDs from a limited selection. This is not complete history. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]}},"pending_refunds":{"type":"array","maxItems":10,"description":"Up to 10 available pending refunds IDs from a limited selection. This is not complete history. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}},"chargebacks":{"type":"array","maxItems":10,"description":"Up to 10 available chargebacks IDs from a limited selection. This is not complete history. Retrieve the details of each chargeback_id using the GetChargeback operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]}},"fraud_detections":{"type":"array","maxItems":10,"description":"Up to 10 available fraud detections IDs from a limited selection. This is not complete history. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_requests":{"type":"array","maxItems":10,"description":"Up to 10 available fraud detection requests IDs from a limited selection. This is not complete history.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]}},"paypal_transactions":{"type":"array","maxItems":10,"description":"Up to 10 available PayPal transactions IDs from a limited selection. This is not complete history. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]}},"paypal_disputes":{"type":"array","maxItems":10,"description":"Up to 10 available PayPal disputes IDs from a limited selection. This is not complete history.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]}},"offline_payments":{"type":"array","maxItems":10,"description":"Up to 10 available offline payments IDs from a limited selection. This is not complete history. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]}},"check_directs":{"type":"array","maxItems":10,"description":"Up to 10 available check directs IDs from a limited selection. This is not complete history. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]}},"smtp_messages":{"type":"array","maxItems":10,"description":"Up to 10 available SMTP messages IDs from a limited selection. This is not complete history.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","title":"SMTP Message ID","minLength":20,"maxLength":20,"examples":["jYgVl6LpyGsPEZd11pvW"]}},"api_calls":{"type":"array","maxItems":1,"description":"Up to 1 available API calls IDs from a limited selection. This is not complete history. Retrieve the details of each api_call_id using the GetAPICall operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]}},"ai_assistants":{"type":"array","maxItems":50,"description":"Up to 50 available AI assistants IDs from a limited selection. This is not complete history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]}},"ai_threads":{"type":"array","maxItems":50,"description":"Up to 50 available AI threads IDs from a limited selection. This is not complete history. Retrieve the details of each ai_thread_id using the GetAIThread operation.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]}},"ai_voice_agents":{"type":"array","maxItems":50,"description":"Up to 50 available AI voice agents IDs from a limited selection. This is not complete history.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","title":"AI Voice Agent ID","minLength":20,"maxLength":20,"examples":["m0P12YMwYXfKjAvj0qYk"]}},"ai_voice_calls":{"type":"array","maxItems":50,"description":"Up to 50 available AI voice calls IDs from a limited selection. This is not complete history.","items":{"description":"A 20 character RevCent public RevCent resource ID.","type":"string","title":"AI Voice Call ID","minLength":20,"maxLength":20,"examples":["vR8ZMaVrK4F9n02RB618"]}},"customer_payment_method":{"type":"array","maxItems":1000,"description":"Up to 1,000 customer payment methods, including supported legacy cards. More than 1,000 methods causes a retrieval error rather than a truncated collection. Unavailable or invalid methods are omitted.","items":{"type":"object","additionalProperties":false,"description":"A reusable payment method. At most one matching card, digital_wallet or ach display object is returned; all are omitted when no display fields are available. Only safe display fields are exposed.","properties":{"ach":{"type":"object","additionalProperties":false,"description":"Safe display fields for category bank_account, when available. Omitted when no display fields are available.","properties":{"account_holder_type":{"type":"string","enum":["individual","business"],"description":"Whether the bank account is held by an individual or a business.","examples":["individual"]},"account_type":{"type":"string","enum":["checking","savings"],"description":"The bank account type.","examples":["checking"]},"bank_name":{"type":"string","description":"The name of the financial institution, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the bank account number.","examples":["1111"]},"routing_last_4":{"type":"string","description":"The final four digits of the bank routing number.","examples":["0210"]}}},"card":{"type":"object","additionalProperties":false,"description":"Safe display fields for category card, when available. Omitted when no display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network.","examples":["visa"]},"expiration_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"expiration_year":{"type":"integer","minimum":1000,"maximum":9999,"description":"The four-digit card expiration year.","examples":[1000]},"funding_source":{"type":"string","description":"The card funding source, such as credit, debit, or prepaid, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the card number.","examples":["1111"]}}},"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"The broad payment-method family.","examples":["card"]},"created_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was created.","examples":[1893499200]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Safe display fields for category digital_wallet, when available. Omitted when no display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network associated with the wallet payment method.","examples":["visa"]},"funding_source":{"type":"string","description":"The funding source reported for the wallet payment method, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits reported for the wallet payment method. These digits may identify a tokenized wallet number rather than the physical card number.","examples":["1111"]}}},"enabled":{"type":"boolean","description":"Whether the payment method is available for future payments."},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the customer payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_default":{"type":"boolean","description":"Whether this is the customer's default payment method for its category."},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"The specific payment method.","examples":["card"]},"rail":{"type":"string","enum":["card","ach"],"description":"The financial rail used to process the payment method.","examples":["card"]},"updated_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was last updated.","examples":[1893499200]}}}}},"title":"APICallResponseInfo"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Customer","description":"Edit a specific customer using the customer ID.","operationId":"EditCustomer","x-api-permission-description":"Allows the editing of a Customer.","x-api-permission":"customer:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditCustomer.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"customer":{"description":"The customer object contains the details you wish to modify for the customer.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object"},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["customer"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}/enable":{"post":{"summary":"Enable A Customer","description":"Enable a specific customer using the customer ID and enable path.","operationId":"EnableCustomer","x-api-permission-description":"Allows the enabling of a Customer.","x-api-permission":"customer:enable","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EnableCustomer.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}/disable":{"post":{"summary":"Disable A Customer","description":"Disable a specific customer using the customer ID and disable path.","operationId":"DisableCustomer","x-api-permission-description":"Allows the disabling of a Customer.","x-api-permission":"customer:disable","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DisableCustomer.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}/add_to_group":{"post":{"summary":"Add Customer To Group","description":"Add a customer to one or more customer groups.","operationId":"AddCustomerToGroup","x-api-permission-description":"Allows the addition of a customer to one or more customer groups.","x-api-permission":"customer:add_to_group","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/AddCustomerToGroup.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"customer_group":{"items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array","description":"An array of customer group ID's to add the customer to.","minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["customer_group"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}/remove_from_group":{"post":{"summary":"Remove Customer From Group","description":"Remove a customer from one or more customer groups.","operationId":"RemoveCustomerFromGroup","x-api-permission-description":"Allows the removal of a customer from one or more customer groups.","x-api-permission":"customer:remove_from_group","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RemoveCustomerFromGroup.md","tags":["Customers"],"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"customer_group":{"items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array","description":"An array of customer group ID's to remove the customer from.","minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["customer_group"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customers/{customer_id}/payment_methods":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}}],"get":{"operationId":"GetCustomerPaymentMethods","summary":"Get customer payment methods","description":"Retrieve the customer’s available payment methods in one fixed page, newest first. Includes enabled and disabled methods. More than 1,000 methods causes a retrieval error. No query parameters are accepted; sensitive credentials and complete card or account numbers are never returned.","x-api-permission":"customer:retrieve","x-api-permission-description":"Allows customer payment methods to be retrieved.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"responses":{"200":{"description":"The customer payment methods were retrieved.","content":{"application/json":{"schema":{"description":"The customer’s payment methods in one fixed page, with counts for the returned collection.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code; 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of returned payment methods; equal to total_count and the length of results.","type":"integer","maximum":1000,"minimum":0,"examples":[0]},"current_page":{"description":"Always 1, including when results is empty.","type":"integer","enum":[1],"examples":[1]},"total_count":{"description":"The number of returned payment methods; equal to current_count and the length of results.","type":"integer","maximum":1000,"minimum":0,"examples":[0]},"total_pages":{"description":"Always 1, including when results is empty.","type":"integer","enum":[1],"examples":[1]},"results":{"type":"array","maxItems":1000,"description":"All available distinct payment methods for the customer, newest first. Returns an empty array when none are available. More than 1,000 methods causes a retrieval error instead of a truncated collection.","items":{"type":"object","additionalProperties":false,"description":"A customer payment method with at most one matching card, digital_wallet or ach display object. That object is omitted when no display fields are available. Only safe display fields are returned.","properties":{"ach":{"type":"object","additionalProperties":false,"description":"Safe display fields for category bank_account, when available. Omitted when no display fields are available.","properties":{"account_holder_type":{"type":"string","enum":["individual","business"],"description":"Whether the bank account is held by an individual or a business.","examples":["individual"]},"account_type":{"type":"string","enum":["checking","savings"],"description":"The bank account type.","examples":["checking"]},"bank_name":{"type":"string","description":"The name of the financial institution, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the bank account number.","examples":["0042"]},"routing_last_4":{"type":"string","description":"The final four digits of the bank routing number.","examples":["0012"]}}},"card":{"type":"object","additionalProperties":false,"description":"Safe display fields for category card, when available. Omitted when no display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network associated with the payment method.","examples":["visa"]},"expiration_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"expiration_year":{"type":"integer","minimum":1000,"maximum":9999,"description":"The four-digit card expiration year.","examples":[1000]},"funding_source":{"type":"string","description":"The card funding source, such as credit, debit, or prepaid, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the card number.","examples":["0042"]},"first_6":{"type":"string","minLength":6,"maxLength":6,"description":"The first six digits of the card number, when available. Leading zeros are preserved; unavailable or invalid values are omitted.","examples":["001234"]}}},"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"The broad payment-method family.","examples":["card"]},"created_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was created.","examples":[1893499200]},"customer_id":{"description":"The customer’s 20 character RevCent ID, matching the requested customer_id.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Safe display fields for category digital_wallet, when available. Omitted when no display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network associated with the payment method.","examples":["visa"]},"funding_source":{"type":"string","description":"The funding source reported for the wallet payment method, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits reported for the wallet payment method. These digits may identify a tokenized wallet number rather than the physical card number.","examples":["0042"]}}},"enabled":{"type":"boolean","description":"Whether the payment method is enabled."},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the customer payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_default":{"type":"boolean","description":"Whether this is the customer's default payment method for its category."},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"The specific payment method.","examples":["card"]},"rail":{"type":"string","enum":["card","ach"],"description":"The financial rail used to process the payment method.","examples":["card"]},"updated_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was last updated.","examples":[1893499200]}}}}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}},"x-md-link":"markdown/mcp/operation/GetCustomerPaymentMethods.md"},"post":{"operationId":"AddCustomerPaymentMethod","summary":"Add a payment method to a customer","description":"Adds a reusable payment method to an existing customer. Card payment methods are currently supported.","x-api-permission":"customer:add_payment_method","x-api-permission-description":"Allows a reusable payment method to be added to a customer.","x-ai-options":["ai_voice_agent","mcp"],"tags":["Customers"],"requestBody":{"required":true,"description":"The reusable payment method and optional billing information.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["payment_method"],"description":"The request used to add a reusable payment method to a customer.","properties":{"bill_to":{"description":"Billing information associated with the payment method. Existing customer information is used when this object is omitted.","type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The first line of the billing street address.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The second line of the billing street address.","examples":["Suite 100"]},"city":{"type":"string","description":"The billing city.","examples":["Boston"]},"company":{"type":"string","description":"The billing company name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The billing email address.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"The billing first name.","examples":["Alex"]},"last_name":{"type":"string","description":"The billing last name.","examples":["River"]},"phone":{"type":"string","description":"The billing phone number.","examples":["+12025550123"]},"state":{"type":"string","description":"The billing state, province, or region.","examples":["MA"]},"zip":{"type":"string","description":"The billing postal code.","examples":["02108"]}}},"payment_method":{"description":"The reusable payment method to add.","type":"object","additionalProperties":false,"required":["method","card"],"properties":{"card":{"description":"The card details to add.","type":"object","additionalProperties":false,"required":["card_number","exp_month","exp_year"],"properties":{"card_code":{"type":"string","minLength":3,"maxLength":4,"description":"The three- or four-digit card security code.","examples":["123"]},"card_number":{"type":"string","minLength":12,"maxLength":23,"description":"The complete card number. Digits may be separated by spaces or hyphens.","examples":["4111111111111111"]},"exp_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"exp_year":{"oneOf":[{"type":"integer","minimum":0,"maximum":99,"description":"A two-digit expiration year."},{"type":"integer","minimum":1000,"maximum":9999,"description":"A four-digit expiration year."}],"description":"The card expiration year using either two or four digits."}}},"method":{"type":"string","const":"card","description":"The type of reusable payment method being added.","examples":["card"]}}},"set_as_default":{"type":"boolean","default":false,"description":"Whether the new payment method should become the customer's default card payment method. A customer's first card is set as the default."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}}},"responses":{"200":{"description":"The payment method was added to the customer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"A successful customer-payment-method mutation response.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"customer_card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the card associated with the payment method. Present only for card payment methods.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/AddCustomerPaymentMethod.md"}},"/customers/{customer_id}/payment_methods/{payment_method_id}":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}},{"name":"payment_method_id","in":"path","required":true,"description":"The 20-character public ID of a payment method associated with the customer.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"get":{"operationId":"GetCustomerPaymentMethod","summary":"Get a customer payment method","description":"Retrieve a specific reusable payment method associated with a customer, including disabled methods. No query parameters are accepted. Sensitive credentials and complete card or account numbers are never returned.","x-api-permission":"customer:retrieve","x-api-permission-description":"Allows a customer payment method to be retrieved.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"responses":{"200":{"description":"The customer payment method was retrieved.","content":{"application/json":{"schema":{"description":"One customer payment method with at most one matching card, digital_wallet or ach display object. That object is omitted when no display fields are available.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The RevCent success code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"ach":{"type":"object","additionalProperties":false,"description":"Safe display fields for category bank_account, when available. Omitted when no valid display fields are available.","properties":{"account_holder_type":{"type":"string","enum":["individual","business"],"description":"Whether the bank account is held by an individual or a business.","examples":["individual"]},"account_type":{"type":"string","enum":["checking","savings"],"description":"The bank account type.","examples":["checking"]},"bank_name":{"type":"string","description":"The name of the financial institution, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the bank account number. Leading zeros are preserved.","examples":["0042"]},"routing_last_4":{"type":"string","description":"The final four digits of the bank routing number. Leading zeros are preserved.","examples":["0012"]}}},"card":{"type":"object","additionalProperties":false,"description":"Safe display fields for category card, when available. Omitted when no valid display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network associated with the payment method.","examples":["visa"]},"expiration_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"expiration_year":{"type":"integer","minimum":1000,"maximum":9999,"description":"The four-digit card expiration year.","examples":[1000]},"funding_source":{"type":"string","description":"The card funding source, such as credit, debit, or prepaid, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the card number. Leading zeros are preserved.","examples":["0042"]},"first_6":{"type":"string","minLength":6,"maxLength":6,"description":"The first six digits of the card number, when available. Leading zeros are preserved; unavailable or invalid values are omitted.","examples":["001234"]}}},"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"The broad payment-method family.","examples":["card"]},"created_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was created.","examples":[1893499200]},"customer_id":{"description":"The customer’s 20 character RevCent ID, matching the requested customer_id.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Safe display fields for category digital_wallet, when available. Omitted when no valid display fields are available.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network associated with the payment method.","examples":["visa"]},"funding_source":{"type":"string","description":"The funding source reported for the wallet payment method, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits reported for the wallet payment method. These digits may identify a tokenized wallet number rather than the physical card number. Leading zeros are preserved.","examples":["0042"]}}},"enabled":{"type":"boolean","description":"Whether the payment method is enabled. Disabled methods can also be retrieved."},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the payment method, matching the requested payment_method_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_default":{"type":"boolean","description":"Whether this is the customer's default payment method for its category."},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"The specific payment method: card for category card, apple_pay or google_pay for category digital_wallet, or ach for category bank_account.","examples":["card"]},"rail":{"type":"string","enum":["card","ach"],"description":"The payment processing rail: card for card and digital_wallet categories, or ach for bank_account.","examples":["card"]},"updated_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was last updated.","examples":[1893499200]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}},"x-md-link":"markdown/mcp/operation/GetCustomerPaymentMethod.md"}},"/customers/{customer_id}/payment_methods/{payment_method_id}/delete":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}},{"name":"payment_method_id","in":"path","required":true,"description":"A 20 character RevCent ID for a payment method or legacy saved card belonging to your account and the specified customer, in the request's Live/Test mode. A matching payment method is selected first; otherwise the ID must identify the exact legacy card. Invalid, deleted or unavailable selections fail without substituting another payment method or default. Disabled selections can still be managed.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"post":{"operationId":"DeleteCustomerPaymentMethod","summary":"Delete a customer payment method","description":"Removes the selected customer payment method or legacy saved card from future use while preserving payment history. Repeating deletion of an already-deleted selection fails with HTTP 400 and error_code E1142. For card actions, the associated card and payment method are synchronized when both exist.","x-api-permission":"customer:delete_payment_method","x-api-permission-description":"Allows a customer payment method to be deleted.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"requestBody":{"required":false,"description":"This action does not require request properties.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"maxProperties":0,"description":"An optional empty JSON object."}}}},"responses":{"200":{"description":"The customer payment method was deleted.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Acknowledgment of a customer payment-method action. These actions do not create a payment method for a legacy card that has none.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"customer_card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected saved card. Returned for card actions, including legacy cards without a corresponding payment method; omitted for non-card payment methods.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected payment method, when one exists. If selected by a legacy saved card ID with no corresponding payment method, this equals that card ID, also returned as customer_card_id. This value may differ from payment_method_id in the URL.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/DeleteCustomerPaymentMethod.md"}},"/customers/{customer_id}/payment_methods/{payment_method_id}/disable":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}},{"name":"payment_method_id","in":"path","required":true,"description":"A 20 character RevCent ID for a payment method or legacy saved card belonging to your account and the specified customer, in the request's Live/Test mode. A matching payment method is selected first; otherwise the ID must identify the exact legacy card. Invalid, deleted or unavailable selections fail without substituting another payment method or default. Disabled selections can still be managed.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"post":{"operationId":"DisableCustomerPaymentMethod","summary":"Disable a customer payment method","description":"Disables the selected customer payment method or legacy saved card for future payments. This does not choose a new default. Repeating the action when already disabled succeeds. For card actions, the associated card and payment method are synchronized when both exist.","x-api-permission":"customer:disable_payment_method","x-api-permission-description":"Allows a customer payment method to be disabled.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"requestBody":{"required":false,"description":"This action does not require request properties.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"maxProperties":0,"description":"An optional empty JSON object."}}}},"responses":{"200":{"description":"The customer payment method was disabled.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Acknowledgment of a customer payment-method action. These actions do not create a payment method for a legacy card that has none.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"customer_card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected saved card. Returned for card actions, including legacy cards without a corresponding payment method; omitted for non-card payment methods.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected payment method, when one exists. If selected by a legacy saved card ID with no corresponding payment method, this equals that card ID, also returned as customer_card_id. This value may differ from payment_method_id in the URL.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/DisableCustomerPaymentMethod.md"}},"/customers/{customer_id}/payment_methods/{payment_method_id}/enable":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}},{"name":"payment_method_id","in":"path","required":true,"description":"A 20 character RevCent ID for a payment method or legacy saved card belonging to your account and the specified customer, in the request's Live/Test mode. A matching payment method is selected first; otherwise the ID must identify the exact legacy card. Invalid, deleted or unavailable selections fail without substituting another payment method or default. Disabled selections can still be managed.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"post":{"operationId":"EnableCustomerPaymentMethod","summary":"Enable a customer payment method","description":"Enables the selected customer payment method or legacy saved card for future payments. Repeating the action when already enabled succeeds. For card actions, the associated card and payment method are synchronized when both exist.","x-api-permission":"customer:enable_payment_method","x-api-permission-description":"Allows a customer payment method to be enabled.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"requestBody":{"required":false,"description":"This action does not require request properties.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"maxProperties":0,"description":"An optional empty JSON object."}}}},"responses":{"200":{"description":"The customer payment method was enabled.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Acknowledgment of a customer payment-method action. These actions do not create a payment method for a legacy card that has none.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"customer_card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected saved card. Returned for card actions, including legacy cards without a corresponding payment method; omitted for non-card payment methods.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected payment method, when one exists. If selected by a legacy saved card ID with no corresponding payment method, this equals that card ID, also returned as customer_card_id. This value may differ from payment_method_id in the URL.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/EnableCustomerPaymentMethod.md"}},"/customers/{customer_id}/payment_methods/{payment_method_id}/set_default":{"parameters":[{"in":"path","name":"customer_id","description":"The customer ID.","required":true,"schema":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]}},{"name":"payment_method_id","in":"path","required":true,"description":"A 20 character RevCent ID for a payment method or legacy saved card belonging to your account and the specified customer, in the request's Live/Test mode. A matching payment method is selected first; otherwise the ID must identify the exact legacy card. Invalid, deleted or unavailable selections fail without substituting another payment method or default. Disabled selections can still be managed.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"post":{"operationId":"SetDefaultCustomerPaymentMethod","summary":"Set a default customer payment method","description":"Sets the selected customer payment method or legacy saved card as the default for its payment-method category. This does not enable a disabled selection or change defaults in other categories. Repeating the action when already the default succeeds. For card actions, the associated card and payment method are synchronized when both exist.","x-api-permission":"customer:set_default_payment_method","x-api-permission-description":"Allows a customer payment method to be set as the default for its category.","x-ai-options":["ai_assistant","mcp"],"tags":["Customers"],"requestBody":{"required":false,"description":"This action does not require request properties.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"maxProperties":0,"description":"An optional empty JSON object."}}}},"responses":{"200":{"description":"The customer payment method was set as the default for its category.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Acknowledgment of a customer payment-method action. These actions do not create a payment method for a legacy card that has none.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"customer_card_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected saved card. Returned for card actions, including legacy cards without a corresponding payment method; omitted for non-card payment methods.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the customer that owns the payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the affected payment method, when one exists. If selected by a legacy saved card ID with no corresponding payment method, this equals that card ID, also returned as customer_card_id. This value may differ from payment_method_id in the URL.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/SetDefaultCustomerPaymentMethod.md"}},"/customers/search":{"get":{"summary":"Search Customers","description":"Search existing customers using search_term, email or phone. Provide at least one nonblank value after trimming whitespace. Nonblank email or phone searches only that field and overrides search_term; when both are provided, both must match. Returns up to 10 relevance-ranked matches without pagination or a completeness guarantee. Use a result’s id with GetCustomer for customer details.","operationId":"SearchCustomers","x-api-permission-description":"Allows the search of customers.","x-api-permission":"customer:search","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"Useful for finding a customer when you do not know the customer ID and wish to retrieve the details of a specific customer. Once a customer has been found, use an individual search results' id property and the GetCustomer operation to retrieve the customer details. A recommended search term is the customer email address, or a combination of the first name, last name and zip code.<br><br>Important: If using the SearchCustomers and GetCustomer method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed the customer using a secondary non-provided value, such as the ZIP code in the GetCustomer response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchCustomers.md","tags":["Customers"],"parameters":[{"name":"search_term","description":"A term or phrase to search across the supported customer fields. Used only when both email and phone are blank or omitted. Values are trimmed; provide at least one nonblank search_term, email or phone.","in":"query","required":false,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"The search engine analyzes the following fields:<br><table class=\"table table-bordered\"><thead class=\"small\"><tr><th>Field</th> <th>Description</th></tr></thead> <tbody><tr><td>id</td> <td>The RevCent ID of the customer.</td></tr> <tr><td>first_name</td> <td>The first name of the customer.</td></tr> <tr><td>last_name</td> <td>The last name of the customer.</td></tr> <tr><td>address_line_1</td> <td>The customers' address line 1.</td></tr> <tr><td>email</td> <td>The customers' email address.</td></tr> <tr><td>internal_id</td> <td>The customers' internal_id.</td></tr> <tr><td>ip_address</td> <td>The IP address of the customer.</td></tr> <tr><td>phone</td> <td>The customers' phone number.</td></tr>  <tr><td>metadata</td> <td>All metadata values within a customer.</td></tr></tbody></table>"},{"name":"email","description":"Search text for the customer’s email field. A nonblank value overrides search_term; if phone is also nonblank, both fields must match. Values are trimmed and blank values are ignored. Provide at least one nonblank search_term, email or phone.","in":"query","required":false,"schema":{"type":"string","examples":["customer@example.com"]},"style":"form"},{"name":"phone","description":"Search text for the customer’s phone field. A nonblank value overrides search_term; if email is also nonblank, both fields must match. Values are trimmed and blank values are ignored. Provide at least one nonblank search_term, email or phone.","in":"query","required":false,"schema":{"type":"string","examples":["15555550100"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Customer search results with API response metadata.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code; 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 customer matches, ordered by relevance. May be empty. Results are not a complete list of all matching customers and do not support pagination.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The first line of the customer’s address.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The second line of the customer’s address.","examples":["West Wing"]},"city":{"type":"string","description":"The customer’s city.","examples":["Washington"]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"email":{"type":"string","format":"email","description":"The customer’s email address, when available and valid.","examples":["georgew@whitehouse.gov"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"first_name":{"type":"string","description":"The customer’s first name.","examples":["George"]},"highlights":{"type":"array","description":"Matching text grouped by customer field, when available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","internal_id","ip_address","last_name","metadata","phone"],"description":"The customer field containing the highlighted match.","examples":["last_name"]},"values":{"type":"array","description":"The matching text fragments from this field.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"The relevance score for this highlighted match, when available.","examples":[0]},"full_text":{"type":"string","description":"Matching metadata text with surrounding context, returned only when field is metadata. The matching entry may be absent from the limited metadata array returned with this result.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"The 20 character RevCent ID of the customer. Use this ID with GetCustomer to retrieve customer details.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when provided.","examples":["pres_01"]},"ip_address":{"type":"string","description":"The customer IP address when created.","examples":["123.456.789.0"]},"item_type":{"type":"string","enum":["customer"],"description":"The item type returned in the search result.","examples":["customer"]},"last_name":{"type":"string","description":"The customer’s last name.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs, in their existing order. May be empty; omitted when unavailable.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"num_sales":{"type":"integer","minimum":0,"description":"The available number of sales associated with the customer, as a nonnegative integer. Returns 0 when no count is available; omitted when the recorded count is invalid.","examples":[0]},"phone":{"type":"string","description":"The customer’s phone number.","examples":["1234567890"]},"score":{"type":"number","description":"The relevance score for this result. Higher values indicate a closer search match.","examples":[7.68]},"state":{"type":"string","description":"The customer’s state or province.","examples":["DC"]},"url":{"type":"string","format":"uri","description":"The RevCent details URL for the customer identified by id.","examples":["https://revcent.com/user/customer-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"The customer’s ZIP or postal code.","examples":["20500"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_groups":{"get":{"summary":"Get Customer Groups","description":"Retrieve the account's available customer groups and their saved qualification settings, newest first.","operationId":"GetCustomerGroups","x-api-permission-description":"Allows the retrieval of customer groups.","x-api-permission":"customer_group:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/customer/customer-group","x-kb-name":"Customer Groups","x-md-link":"markdown/mcp/operation/GetCustomerGroups.md","tags":["Customer Groups"],"parameters":[{"description":"Required maximum number of customer groups per page, from 1 to 25. Only limit and page are accepted; date and item filters are not supported.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Page 0 returns page 1. The total number of pages may exceed 20, but only pages up to 20 can be requested.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful customer group list response.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of customer groups returned on this page.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as 1. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the group was created, in Unix seconds. Zero when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The saved customer group name. May be empty.","type":"string","examples":["High LTV Group"]},"description":{"description":"The saved description. Empty when unavailable or invalid.","type":"string","examples":["Groups customers by lifetime value."]},"enabled":{"description":"Whether the group is enabled. True unless explicitly disabled.","type":"boolean","examples":[true]},"qualifier_method":{"description":"The saved qualification method: specific_values uses values and filters; customer_group uses other group memberships; none uses manual membership without qualification criteria.","type":"string","examples":["specific_values","customer_group","none"],"enum":["specific_values","customer_group","none"]},"qualifiers":{"type":"object","description":"Saved qualification settings. specific_values returns only qualifiers.specific_values; customer_group returns only qualifiers.customer_group; none omits qualifiers.","additionalProperties":false,"properties":{"specific_values":{"type":"object","description":"Saved value, filter and subscription criteria, returned only for specific_values.","additionalProperties":false,"properties":{"filters":{"type":"object","description":"Saved filters. Available relationships and valid metadata values are returned; omitted values can make these arrays incomplete.","additionalProperties":false,"properties":{"campaign":{"type":"array","description":"Configured campaign criteria; matching any configured campaign satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"product_group":{"type":"array","description":"Configured product-group criteria; a purchase from any configured group satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the product group.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"third_party_shop":{"type":"array","description":"Configured shop criteria; a purchase from any configured shop satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"metadata":{"type":"array","description":"Available saved metadata filters, up to 50 entries. Different names must all match; multiple values for the same name are alternatives. METADATA_NAME_EXISTS tests presence of the name. An empty returned array does not establish that no metadata filter was configured.","items":{"description":"The metadata name and value used to qualify customers.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name used to qualify customers.","examples":["facebook_ad"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value used to qualify customers. Can be a specific value or 'METADATA_NAME_EXISTS' indicating the presence of the metadata name.","examples":["232422","METADATA_NAME_EXISTS"],"minLength":1,"maxLength":255}},"type":"object"},"maxItems":50}}},"values":{"type":"object","description":"Saved criteria, subject to has_no_sales. Applicable enabled ranges use inclusive bounds; disabled ranges impose no condition. Historical negative, fractional and reversed bounds are returned unchanged, with zero for unavailable or invalid bounds. Reversed ranges cannot match. Retrieved values may not satisfy current qualification requirements.","additionalProperties":false,"properties":{"has_no_sales":{"type":"boolean","description":"Requires no sales. When true, campaign, product-group, shop and metadata filters and the enabled fraud-detection count remain applicable; other numeric ranges, including days_since_created, and subscription options are bypassed. False when unavailable or not enabled.","examples":[false]},"days_since_created":{"type":"object","description":"Days since the customer was created. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_value":{"type":"object","description":"Lifetime sales amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_refunded":{"type":"object","description":"Lifetime refunded amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_sale":{"type":"object","description":"Number of sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"avg_sale":{"type":"object","description":"Average sale amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"days_last_sale":{"type":"object","description":"Days since the last sale. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_success_sale":{"type":"object","description":"Number of successful sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_upsell_sale":{"type":"object","description":"Number of upsell sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_pending_declined_sale":{"type":"object","description":"Number of declined pending sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_pending_abandoned_sale":{"type":"object","description":"Number of abandoned pending sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_fraud_detection":{"type":"object","description":"Number of fraud detections. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_chargeback":{"type":"object","description":"Lifetime chargeback amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_chargeback":{"type":"object","description":"Number of chargebacks. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_paypal_dispute":{"type":"object","description":"Lifetime PayPal dispute amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_paypal_dispute":{"type":"object","description":"Number of PayPal disputes. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}}}},"subscription_options":{"type":"object","description":"Saved subscription criteria. When enabled and applicable, a customer must have a subscription and meet the configured status and renewal criteria. These criteria do not apply when has_no_sales is true. Historical bounds are returned unchanged, with zero for unavailable or invalid bounds.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether subscription criteria are enabled. False when unavailable or not enabled.","examples":[false]},"days_last_renewal":{"type":"object","description":"Days since the last subscription renewal. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_renewal":{"type":"object","description":"Number of subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_success_renewal":{"type":"object","description":"Number of successful subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_overdue_renewal":{"type":"object","description":"Number of overdue subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"status":{"type":"array","description":"Available supported subscription statuses, without duplicates. Matching any configured status satisfies this criterion. Unsupported saved values are omitted, so empty output does not establish that no status was configured.","items":{"type":"string","description":"The status used to qualify customers based on their subscription status.","examples":["active","trial","overdue","occurrence_limit","suspended","cancelled"],"enum":["active","trial","overdue","occurrence_limit","suspended","cancelled"]}}}}}},"customer_group":{"type":"object","description":"Saved membership criteria, returned only for customer_group. Each configured membership requirement must be met.","additionalProperties":false,"properties":{"in_any_customer_group":{"description":"Membership in at least one configured group is required. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"in_all_customer_group":{"description":"Membership in every configured group is required. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"not_in_customer_group":{"description":"Membership in any configured group excludes the customer; the customer must belong to none of these groups. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"}}}}},"updated_date_unix":{"description":"When the group was last updated, in Unix seconds. Zero when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","description":"The customer groups on this page, newest first. May be empty.","maxItems":25},"total_count":{"description":"The total number of available customer groups for the account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of pages, calculated by dividing total_count by the required limit and rounding up. Zero when no groups are available. This total may exceed 20, but only pages up to 20 can be requested.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Customer Group","description":"Create a customer group, which will issue a unique customer group ID.","operationId":"CreateCustomerGroup","x-api-permission-description":"Allows the creation of a customer group.","x-api-permission":"customer_group:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/customer/customer-group","x-kb-name":"Customer Groups","x-md-link":"markdown/mcp/operation/CreateCustomerGroup.md","tags":["Customer Groups"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The customer group name.","examples":["My Best Customers"]},"description":{"type":"string","description":"The customer group description.","examples":["A group for my best customers that I want to provide special offers to."]},"enabled":{"type":"boolean","description":"Whether the customer group is enabled."},"qualifier_method":{"description":"The method used to qualify customers for the group. Can either be a group based on specific values and filters, based on other customer groups, or none (no qualifiers) for manual insertion and removal.","type":"string","examples":["specific_values","customer_group","none"],"enum":["specific_values","customer_group","none"]},"qualifiers":{"type":"object","description":"The qualifiers used to qualify customers for the group. The qualifiers depend on the qualifier_method for the group. If the qualifier method is 'none', then there are no qualifiers and the group has no qualification criteria, meaning customers must be manually added or removed from the group.","additionalProperties":false,"properties":{"specific_values":{"type":"object","description":"The specific values, filters and subscription options used to qualify customers for the group when the qualifier method is 'specific_values'.","additionalProperties":false,"properties":{"filters":{"type":"object","description":"The filters used to qualify customers.","additionalProperties":false,"properties":{"campaign":{"type":"array","description":"The campaign filter used to qualify customers. If empty, then there is no campaign filter qualification. If there are multiple campaign filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"product_group":{"type":"array","description":"The product group filter used to qualify customers that have purchased a product within the product group. If empty, then there is no product group filter qualification. If there are multiple product group filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"third_party_shop":{"type":"array","description":"The third party shop filter used to qualify customers that have made a purchase from the third party shop. If empty, then there is no third party shop filter qualification. If there are multiple third party shop filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"metadata":{"type":"array","description":"The metadata filter used to qualify customers that have a specific metadata name and value. If empty, then there is no metadata filter qualification. If there are multiple metadata filters, then a customer needs to qualify for all of the filters to qualify for the group. If using multiple values for the same name, then values will be grouped by name and the customer must match at least one of the values for the name.","items":{"description":"The metadata name and value used to qualify customers.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name used to qualify customers.","examples":["facebook_ad"]},"value":{"type":"string","description":"The metadata value used to qualify customers. Can be a specific value or 'METADATA_NAME_EXISTS' indicating the presence of the metadata name.","examples":["232422","METADATA_NAME_EXISTS"]}},"type":"object"}}}},"values":{"type":"object","description":"The specific values used to qualify customers. A customer must match all of the enabled specific values to qualify for the group. If a specific value is enabled then the customer must have a value equal to or greater than the min to qualify for the group and a value equal to or less than the max to qualify for the group. For ranges that permit a zero minimum, setting both bounds to 0 requires the corresponding value to be 0. If a specific value is not enabled, then there is no qualification based on that specific value.","additionalProperties":false,"properties":{"has_no_sales":{"type":"boolean","description":"Whether the customer has 0 sales on record. This is a method to quickly identify prospects, i.e. signups that have not attempted any purchases. If true, then customers must have 0 sales to qualify for the group, and NO OTHER qualifiers.specific_values.values, EXCEPT FOR 'days_since_created', will be considered for qualification. Recommended set to false.","examples":[false]},"days_since_created":{"type":"object","description":"The number of days since the customer was first created, i.e. the account age.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since created value is enabled.","examples":[false]},"min":{"description":"Minimum number of days since the customer was created for customers to qualify. Optional, but must be at least 1 whenever supplied, even when enabled is false. Must not exceed max.","type":"integer","examples":[1],"minimum":1},"max":{"description":"The maximum number of days since the customer was created for customers to qualify for the group. Must be 0 or greater.","type":"integer","examples":[30],"minimum":0}}},"lifetime_value":{"type":"object","description":"The lifetime value specific value used to qualify customers based on their lifetime value.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime value is enabled.","examples":[false]},"min":{"description":"The minimum lifetime value for customers to qualify for the group.","type":"number","format":"float","examples":[0]},"max":{"description":"The maximum lifetime value for customers to qualify for the group.","type":"number","format":"float","examples":[0]}}},"lifetime_refunded":{"type":"object","description":"The lifetime refunded specific value used to qualify customers based on their lifetime sum amount of refunds.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime refunded is enabled.","examples":[false]},"min":{"description":"The minimum lifetime refunded for customers to qualify for the group.","type":"number","format":"float","examples":[0]},"max":{"description":"The maximum lifetime refunded for customers to qualify for the group.","type":"number","format":"float","examples":[0]}}},"num_sale":{"type":"object","description":"The number of sales specific value used to qualify customers based on their sales count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the sales count is enabled.","examples":[false]},"min":{"description":"The minimum sales count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum sales count for customers to qualify for the group.","type":"integer","examples":[0]}}},"avg_sale":{"type":"object","description":"The average sale specific value used to qualify customers based on their average sale amount.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the average sale is enabled.","examples":[false]},"min":{"description":"The minimum average sale for customers to qualify for the group.","type":"number","format":"float","examples":[0]},"max":{"description":"The maximum average sale for customers to qualify for the group.","type":"number","format":"float","examples":[0]}}},"days_last_sale":{"type":"object","description":"The number of days since the last sale used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since last sale criteria is enabled.","examples":[false]},"min":{"description":"Minimum number of days since the last sale for customers to qualify. Optional, but must be at least 1 whenever supplied, even when enabled is false. Must not exceed max.","type":"integer","examples":[1],"minimum":1},"max":{"description":"The maximum number of days since the last sale for customers to qualify for the group.","type":"integer","examples":[30],"minimum":0}}},"num_success_sale":{"type":"object","description":"The number of successful sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the successful sales criteria is enabled.","examples":[false]},"min":{"description":"The minimum number of successful sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of successful sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_upsell_sale":{"type":"object","description":"The number of upsell sales used to qualify customers based on their upsell activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the upsell sales criteria is enabled.","examples":[false]},"min":{"description":"The minimum number of upsell sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of upsell sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_pending_declined_sale":{"type":"object","description":"The number of declined sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the declined sales criteria is enabled.","examples":[false]},"min":{"description":"The minimum number of declined sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of declined sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_pending_abandoned_sale":{"type":"object","description":"The number of abandoned sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the abandoned sales criteria is enabled.","examples":[false]},"min":{"description":"The minimum number of abandoned sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of abandoned sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_fraud_detection":{"type":"object","description":"The number of fraud detection specific value used to qualify customers based on their fraud detection count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the fraud detection count is enabled.","examples":[false]},"min":{"description":"The minimum fraud detection count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum fraud detection count for customers to qualify for the group.","type":"integer","examples":[0]}}},"lifetime_chargeback":{"type":"object","description":"The lifetime chargeback specific value used to qualify customers based on their lifetime sum amount of chargebacks.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime chargeback is enabled.","examples":[false]},"min":{"description":"The minimum lifetime chargebacks for customers to qualify for the group.","type":"number","format":"float","examples":[0]},"max":{"description":"The maximum lifetime chargebacks for customers to qualify for the group.","type":"number","format":"float","examples":[0]}}},"num_chargeback":{"type":"object","description":"The number of chargebacks specific value used to qualify customers based on their chargeback count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the chargeback count is enabled.","examples":[false]},"min":{"description":"The minimum chargeback count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum chargeback count for customers to qualify for the group.","type":"integer","examples":[0]}}},"lifetime_paypal_dispute":{"type":"object","description":"The lifetime PayPal dispute specific value used to qualify customers based on their lifetime sum amount of PayPal disputes.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime PayPal dispute is enabled.","examples":[false]},"min":{"description":"The minimum lifetime PayPal disputes for customers to qualify for the group.","type":"number","format":"float","examples":[0]},"max":{"description":"The maximum lifetime PayPal disputes for customers to qualify for the group.","type":"number","format":"float","examples":[0]}}},"num_paypal_dispute":{"type":"object","description":"The number of PayPal disputes specific value used to qualify customers based on their PayPal dispute count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the PayPal dispute count is enabled.","examples":[false]},"min":{"description":"The minimum PayPal dispute count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum PayPal dispute count for customers to qualify for the group.","type":"integer","examples":[0]}}}}},"subscription_options":{"type":"object","description":"Subscription options based on a customer having one or more subscriptions which qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether subscription options are enabled.","examples":[false]},"days_last_renewal":{"type":"object","description":"The number of days since the customers' last subscription renewal. Used to qualify customers based on how recently they renewed a subscription.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since last renewal is enabled.","examples":[false]},"min":{"description":"The minimum number of days since the customers' last subscription renewal for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of days since the customers' last subscription renewal for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_renewal":{"type":"object","description":"The number of subscription renewals a customer has completed. Used to qualify customers based on their renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of renewals is enabled.","examples":[false]},"min":{"description":"The minimum number of subscription renewals a customer must have completed to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of subscription renewals a customer can have completed to qualify for the group.","type":"integer","examples":[0]}}},"num_success_renewal":{"type":"object","description":"The number of successful subscription renewals a customer has completed. Used to qualify customers based on their successful renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of successful renewals is enabled.","examples":[false]},"min":{"description":"The minimum number of successful subscription renewals a customer must have completed to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of successful subscription renewals a customer can have completed to qualify for the group.","type":"integer","examples":[0]}}},"num_overdue_renewal":{"type":"object","description":"The number of overdue subscription renewals a customer has. Used to qualify customers based on their overdue renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of overdue renewals is enabled.","examples":[false]},"min":{"description":"The minimum number of overdue subscription renewals a customer must have to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of overdue subscription renewals a customer can have to qualify for the group.","type":"integer","examples":[0]}}},"status":{"type":"array","description":"The subscription status used to qualify customers based on their subscription status. If empty, then there is no subscription status qualification. If there are multiple subscription statuses, then a customer only needs to match one of the statuses to qualify for the group.","items":{"type":"string","description":"The status used to qualify customers based on their subscription status.","examples":["active","trial","overdue","occurrence_limit","suspended","cancelled"],"enum":["active","trial","overdue","occurrence_limit","suspended","cancelled"]}}}}}},"customer_group":{"type":"object","description":"The other customer groups used to qualify customers for the group when the qualifier method is 'customer_group'.","additionalProperties":false,"properties":{"in_any_customer_group":{"description":"The customer group(s) that that at least one of which the customer must be in, in order to qualify. Leave empty if there are no customer groups that customers must be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"in_all_customer_group":{"description":"The customer group(s) that all of which the customer must be in, in order to qualify. Leave empty if there are no multiple customer groups that customers must be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"not_in_customer_group":{"description":"The customer group(s) that at least one of which the customer must not be in, in order to qualify. Leave empty if there are no customer groups that customers must not be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"}}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","qualifier_method"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_group_id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["Customer Group created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_groups/{customer_group_id}":{"get":{"summary":"Get A Customer Group","description":"Retrieve one customer group and its saved qualification settings using customer_group_id. This operation accepts no query parameters.","operationId":"GetCustomerGroup","x-api-permission-description":"Allows the retrieval of customer groups.","x-api-permission":"customer_group:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"","x-kb-link":"https://kb.revcent.com/customer/customer-group","x-kb-name":"Customer Groups","x-md-link":"markdown/mcp/operation/GetCustomerGroup.md","tags":["Customer Groups"],"parameters":[{"in":"path","name":"customer_group_id","description":"The 20 character RevCent ID of the customer group to retrieve.","required":true,"schema":{"description":"The 20 character RevCent ID of the customer group to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful customer group detail response.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this retrieval request began, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"When the group was created, in Unix seconds. Zero when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the customer group, matching the requested customer_group_id.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The saved customer group name. May be empty.","type":"string","examples":["High LTV Group"]},"description":{"description":"The saved description. Empty when unavailable or invalid.","type":"string","examples":["Groups customers by lifetime value."]},"enabled":{"description":"Whether the group is enabled. True unless explicitly disabled.","type":"boolean","examples":[true]},"qualifier_method":{"description":"The saved qualification method: specific_values uses values and filters; customer_group uses other group memberships; none uses manual membership without qualification criteria.","type":"string","examples":["specific_values","customer_group","none"],"enum":["specific_values","customer_group","none"]},"qualifiers":{"type":"object","description":"Saved qualification settings. specific_values returns only qualifiers.specific_values; customer_group returns only qualifiers.customer_group; none omits qualifiers.","additionalProperties":false,"properties":{"specific_values":{"type":"object","description":"Saved value, filter and subscription criteria, returned only for specific_values.","additionalProperties":false,"properties":{"filters":{"type":"object","description":"Saved filters. Available relationships and valid metadata values are returned; omitted values can make these arrays incomplete.","additionalProperties":false,"properties":{"campaign":{"type":"array","description":"Configured campaign criteria; matching any configured campaign satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"product_group":{"type":"array","description":"Configured product-group criteria; a purchase from any configured group satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the product group.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"third_party_shop":{"type":"array","description":"Configured shop criteria; a purchase from any configured shop satisfies this filter. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"metadata":{"type":"array","description":"Available saved metadata filters, up to 50 entries. Different names must all match; multiple values for the same name are alternatives. METADATA_NAME_EXISTS tests presence of the name. An empty returned array does not establish that no metadata filter was configured.","items":{"description":"The metadata name and value used to qualify customers.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name used to qualify customers.","examples":["facebook_ad"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value used to qualify customers. Can be a specific value or 'METADATA_NAME_EXISTS' indicating the presence of the metadata name.","examples":["232422","METADATA_NAME_EXISTS"],"minLength":1,"maxLength":255}},"type":"object"},"maxItems":50}}},"values":{"type":"object","description":"Saved criteria, subject to has_no_sales. Applicable enabled ranges use inclusive bounds; disabled ranges impose no condition. Historical negative, fractional and reversed bounds are returned unchanged, with zero for unavailable or invalid bounds. Reversed ranges cannot match. Retrieved values may not satisfy current qualification requirements.","additionalProperties":false,"properties":{"has_no_sales":{"type":"boolean","description":"Requires no sales. When true, campaign, product-group, shop and metadata filters and the enabled fraud-detection count remain applicable; other numeric ranges, including days_since_created, and subscription options are bypassed. False when unavailable or not enabled.","examples":[false]},"days_since_created":{"type":"object","description":"Days since the customer was created. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_value":{"type":"object","description":"Lifetime sales amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_refunded":{"type":"object","description":"Lifetime refunded amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_sale":{"type":"object","description":"Number of sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"avg_sale":{"type":"object","description":"Average sale amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"days_last_sale":{"type":"object","description":"Days since the last sale. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_success_sale":{"type":"object","description":"Number of successful sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_upsell_sale":{"type":"object","description":"Number of upsell sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_pending_declined_sale":{"type":"object","description":"Number of declined pending sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_pending_abandoned_sale":{"type":"object","description":"Number of abandoned pending sales. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_fraud_detection":{"type":"object","description":"Number of fraud detections. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_chargeback":{"type":"object","description":"Lifetime chargeback amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_chargeback":{"type":"object","description":"Number of chargebacks. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"lifetime_paypal_dispute":{"type":"object","description":"Lifetime PayPal dispute amount. Amounts use major units of the underlying activity currencies, which may differ; the group supplies no single currency or conversion. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_paypal_dispute":{"type":"object","description":"Number of PayPal disputes. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}}}},"subscription_options":{"type":"object","description":"Saved subscription criteria. When enabled and applicable, a customer must have a subscription and meet the configured status and renewal criteria. These criteria do not apply when has_no_sales is true. Historical bounds are returned unchanged, with zero for unavailable or invalid bounds.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether subscription criteria are enabled. False when unavailable or not enabled.","examples":[false]},"days_last_renewal":{"type":"object","description":"Days since the last subscription renewal. When applicable and enabled, the minimum must be positive; zero bounds do not qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_renewal":{"type":"object","description":"Number of subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_success_renewal":{"type":"object","description":"Number of successful subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"num_overdue_renewal":{"type":"object","description":"Number of overdue subscription renewals. When applicable and enabled, zero for both bounds requires a value of zero.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether this criterion is enabled. False when unavailable or not enabled.","examples":[false]},"min":{"description":"The saved inclusive lower bound, or zero when unavailable or invalid.","type":"number","examples":[0]},"max":{"description":"The saved inclusive upper bound, or zero when unavailable or invalid.","type":"number","examples":[0]}}},"status":{"type":"array","description":"Available supported subscription statuses, without duplicates. Matching any configured status satisfies this criterion. Unsupported saved values are omitted, so empty output does not establish that no status was configured.","items":{"type":"string","description":"The status used to qualify customers based on their subscription status.","examples":["active","trial","overdue","occurrence_limit","suspended","cancelled"],"enum":["active","trial","overdue","occurrence_limit","suspended","cancelled"]}}}}}},"customer_group":{"type":"object","description":"Saved membership criteria, returned only for customer_group. Each configured membership requirement must be met.","additionalProperties":false,"properties":{"in_any_customer_group":{"description":"Membership in at least one configured group is required. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"in_all_customer_group":{"description":"Membership in every configured group is required. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"not_in_customer_group":{"description":"Membership in any configured group excludes the customer; the customer must belong to none of these groups. Returns available 20-character public RevCent IDs without a fixed response-item cap. Unavailable or invalid relationships are omitted; an empty array does not prove the saved configuration has no filters.","items":{"description":"The 20 character RevCent ID of the customer group.","type":"string","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"}}}}},"updated_date_unix":{"description":"When the group was last updated, in Unix seconds. Zero when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Customer Group","description":"Edit a previously created customer group using the customer group ID. Only supplied fields are updated.","operationId":"EditCustomerGroup","x-api-permission-description":"Allows the editing of a customer group.","x-api-permission":"customer_group:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/customer/customer-group","x-kb-name":"Customer Groups","x-md-link":"markdown/mcp/operation/EditCustomerGroup.md","tags":["Customer Groups"],"parameters":[{"in":"path","name":"customer_group_id","description":"The customer group ID","required":true,"schema":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The customer group name.","examples":["Example"]},"description":{"type":"string","description":"The customer group description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the customer group is enabled."},"qualifier_method":{"description":"The method used to qualify customers for the group. Can either be a group based on specific values and filters, based on other customer groups, or none (no qualifiers) for manual insertion and removal.","type":"string","enum":["specific_values","customer_group","none"],"examples":["specific_values"]},"qualifiers":{"type":"object","description":"The qualifiers used to qualify customers for the group. The qualifiers depend on the qualifier_method for the group. If the qualifier method is 'none', then there are no qualifiers and the group has no qualification criteria, meaning customers must be manually added or removed from the group.","additionalProperties":false,"properties":{"specific_values":{"type":"object","description":"The specific values, filters and subscription options used to qualify customers for the group when the qualifier method is 'specific_values'.","additionalProperties":false,"properties":{"filters":{"type":"object","description":"The filters used to qualify customers.","additionalProperties":false,"properties":{"campaign":{"type":"array","description":"The campaign filter used to qualify customers. If empty, then there is no campaign filter qualification. If there are multiple campaign filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"product_group":{"type":"array","description":"The product group filter used to qualify customers that have purchased a product within the product group. If empty, then there is no product group filter qualification. If there are multiple product group filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"third_party_shop":{"type":"array","description":"The third party shop filter used to qualify customers that have made a purchase from the third party shop. If empty, then there is no third party shop filter qualification. If there are multiple third party shop filters, then a customer only needs to qualify for one of the filters to qualify for the group.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"metadata":{"type":"array","description":"The metadata filter used to qualify customers that have a specific metadata name and value. If empty, then there is no metadata filter qualification. If there are multiple metadata filters, then a customer needs to qualify for all of the filters to qualify for the group. If using multiple values for the same name, then values will be grouped by name and the customer must match at least one of the values for the name.","items":{"description":"The metadata name and value used to qualify customers.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name used to qualify customers.","examples":["Example"]},"value":{"type":"string","description":"The metadata value used to qualify customers. Can be a specific value or 'METADATA_NAME_EXISTS' indicating the presence of the metadata name.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"}}}},"values":{"type":"object","description":"The specific values used to qualify customers. A customer must match all of the enabled specific values to qualify for the group. If a specific value is enabled then the customer must have a value equal to or greater than the min to qualify for the group and a value equal to or less than the max to qualify for the group. For ranges that permit a zero minimum, setting both bounds to 0 requires the corresponding value to be 0. If a specific value is not enabled, then there is no qualification based on that specific value.","additionalProperties":false,"properties":{"has_no_sales":{"type":"boolean","description":"Whether the customer has 0 sales on record. This is a method to quickly identify prospects, i.e. signups that have not attempted any purchases. If true, then customers must have 0 sales to qualify for the group, and NO OTHER qualifiers.specific_values.values, EXCEPT FOR 'days_since_created', will be considered for qualification. Recommended set to false."},"days_since_created":{"type":"object","description":"The number of days since the customer was first created, i.e. the account age.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since created value is enabled."},"min":{"description":"Minimum number of days since the customer was created for customers to qualify. Optional, but must be at least 1 whenever supplied, even when enabled is false. Must not exceed max.","type":"integer","minimum":1,"examples":[1]},"max":{"description":"The maximum number of days since the customer was created for customers to qualify for the group. Must be 0 or greater.","type":"integer","minimum":0,"examples":[30]}}},"lifetime_value":{"type":"object","description":"The lifetime value specific value used to qualify customers based on their lifetime value.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime value is enabled."},"min":{"description":"The minimum lifetime value for customers to qualify for the group.","type":"number","format":"float"},"max":{"description":"The maximum lifetime value for customers to qualify for the group.","type":"number","format":"float"}}},"lifetime_refunded":{"type":"object","description":"The lifetime refunded specific value used to qualify customers based on their lifetime sum amount of refunds.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime refunded is enabled."},"min":{"description":"The minimum lifetime refunded for customers to qualify for the group.","type":"number","format":"float"},"max":{"description":"The maximum lifetime refunded for customers to qualify for the group.","type":"number","format":"float"}}},"num_sale":{"type":"object","description":"The number of sales specific value used to qualify customers based on their sales count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the sales count is enabled."},"min":{"description":"The minimum sales count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum sales count for customers to qualify for the group.","type":"integer","examples":[0]}}},"avg_sale":{"type":"object","description":"The average sale specific value used to qualify customers based on their average sale amount.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the average sale is enabled."},"min":{"description":"The minimum average sale for customers to qualify for the group.","type":"number","format":"float"},"max":{"description":"The maximum average sale for customers to qualify for the group.","type":"number","format":"float"}}},"days_last_sale":{"type":"object","description":"The number of days since the last sale used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since last sale criteria is enabled."},"min":{"description":"Minimum number of days since the last sale for customers to qualify. Optional, but must be at least 1 whenever supplied, even when enabled is false. Must not exceed max.","type":"integer","minimum":1,"examples":[1]},"max":{"description":"The maximum number of days since the last sale for customers to qualify for the group.","type":"integer","minimum":0,"examples":[30]}}},"num_success_sale":{"type":"object","description":"The number of successful sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the successful sales criteria is enabled."},"min":{"description":"The minimum number of successful sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of successful sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_upsell_sale":{"type":"object","description":"The number of upsell sales used to qualify customers based on their upsell activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the upsell sales criteria is enabled."},"min":{"description":"The minimum number of upsell sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of upsell sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_pending_declined_sale":{"type":"object","description":"The number of declined sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the declined sales criteria is enabled."},"min":{"description":"The minimum number of declined sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of declined sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_pending_abandoned_sale":{"type":"object","description":"The number of abandoned sales used to qualify customers based on their sales activity.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the abandoned sales criteria is enabled."},"min":{"description":"The minimum number of abandoned sales for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of abandoned sales for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_fraud_detection":{"type":"object","description":"The number of fraud detection specific value used to qualify customers based on their fraud detection count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the fraud detection count is enabled."},"min":{"description":"The minimum fraud detection count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum fraud detection count for customers to qualify for the group.","type":"integer","examples":[0]}}},"lifetime_chargeback":{"type":"object","description":"The lifetime chargeback specific value used to qualify customers based on their lifetime sum amount of chargebacks.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime chargeback is enabled."},"min":{"description":"The minimum lifetime chargebacks for customers to qualify for the group.","type":"number","format":"float"},"max":{"description":"The maximum lifetime chargebacks for customers to qualify for the group.","type":"number","format":"float"}}},"num_chargeback":{"type":"object","description":"The number of chargebacks specific value used to qualify customers based on their chargeback count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the chargeback count is enabled."},"min":{"description":"The minimum chargeback count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum chargeback count for customers to qualify for the group.","type":"integer","examples":[0]}}},"lifetime_paypal_dispute":{"type":"object","description":"The lifetime PayPal dispute specific value used to qualify customers based on their lifetime sum amount of PayPal disputes.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the lifetime PayPal dispute is enabled."},"min":{"description":"The minimum lifetime PayPal disputes for customers to qualify for the group.","type":"number","format":"float"},"max":{"description":"The maximum lifetime PayPal disputes for customers to qualify for the group.","type":"number","format":"float"}}},"num_paypal_dispute":{"type":"object","description":"The number of PayPal disputes specific value used to qualify customers based on their PayPal dispute count.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the PayPal dispute count is enabled."},"min":{"description":"The minimum PayPal dispute count for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum PayPal dispute count for customers to qualify for the group.","type":"integer","examples":[0]}}}}},"subscription_options":{"type":"object","description":"Subscription options based on a customer having one or more subscriptions which qualify.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether subscription options are enabled."},"days_last_renewal":{"type":"object","description":"The number of days since the customers' last subscription renewal. Used to qualify customers based on how recently they renewed a subscription.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the days since last renewal is enabled."},"min":{"description":"The minimum number of days since the customers' last subscription renewal for customers to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of days since the customers' last subscription renewal for customers to qualify for the group.","type":"integer","examples":[0]}}},"num_renewal":{"type":"object","description":"The number of subscription renewals a customer has completed. Used to qualify customers based on their renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of renewals is enabled."},"min":{"description":"The minimum number of subscription renewals a customer must have completed to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of subscription renewals a customer can have completed to qualify for the group.","type":"integer","examples":[0]}}},"num_success_renewal":{"type":"object","description":"The number of successful subscription renewals a customer has completed. Used to qualify customers based on their successful renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of successful renewals is enabled."},"min":{"description":"The minimum number of successful subscription renewals a customer must have completed to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of successful subscription renewals a customer can have completed to qualify for the group.","type":"integer","examples":[0]}}},"num_overdue_renewal":{"type":"object","description":"The number of overdue subscription renewals a customer has. Used to qualify customers based on their overdue renewal history.","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether the number of overdue renewals is enabled."},"min":{"description":"The minimum number of overdue subscription renewals a customer must have to qualify for the group.","type":"integer","examples":[0]},"max":{"description":"The maximum number of overdue subscription renewals a customer can have to qualify for the group.","type":"integer","examples":[0]}}},"status":{"type":"array","description":"The subscription status used to qualify customers based on their subscription status. If empty, then there is no subscription status qualification. If there are multiple subscription statuses, then a customer only needs to match one of the statuses to qualify for the group.","items":{"type":"string","description":"The status used to qualify customers based on their subscription status.","enum":["active","trial","overdue","occurrence_limit","suspended","cancelled"],"examples":["active"]}}}}}},"customer_group":{"type":"object","description":"The other customer groups used to qualify customers for the group when the qualifier method is 'customer_group'.","additionalProperties":false,"properties":{"in_any_customer_group":{"description":"The customer group(s) that that at least one of which the customer must be in, in order to qualify. Leave empty if there are no customer groups that customers must be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"in_all_customer_group":{"description":"The customer group(s) that all of which the customer must be in, in order to qualify. Leave empty if there are no multiple customer groups that customers must be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"},"not_in_customer_group":{"description":"The customer group(s) that at least one of which the customer must not be in, in order to qualify. Leave empty if there are no customer groups that customers must not be in to qualify.","items":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"type":"array"}}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_group_id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_groups/{customer_group_id}/delete":{"post":{"summary":"Delete A Customer Group","description":"Delete a specific customer group using the customer group ID and delete path.","operationId":"DeleteCustomerGroup","x-api-permission-description":"Allows the deletion of a customer group.","x-api-permission":"customer_group:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteCustomerGroup.md","tags":["Customer Groups"],"parameters":[{"in":"path","name":"customer_group_id","description":"The customer group ID","required":true,"schema":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_group_id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_portals":{"get":{"summary":"Get Customer Portals","description":"Retrieve the account's available customer portals and their saved settings, newest first.","operationId":"GetCustomerPortals","x-api-permission-description":"Allows the retrieval of customer portals.","x-api-permission":"customer_portal:retrieve","x-ai-options":["mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/customer/customer-portal","x-kb-name":"Customer Portals","x-md-link":"markdown/mcp/operation/GetCustomerPortals.md","tags":["Customer Portals"],"parameters":[{"description":"Required maximum number of customer portals per page, from 1 to 25. Only limit and page are accepted; date and item filters are not supported.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Page 0 returns page 1. The total number of pages may exceed 20, but only pages up to 20 can be requested.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful customer portal list response.","properties":{"api_call_id":{"description":"The 20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The current number of items in the results.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The returned page number; requested page 0 is treated as 1. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the customer portal.","type":"string","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Customer Portal"]},"description":{"description":"The saved portal description; empty when unavailable.","type":"string","examples":["My customer portal description."]},"enabled":{"description":"Whether the portal is enabled. Returns true unless explicitly disabled.","type":"boolean","examples":[true]},"logo":{"description":"The portal logo URL, or null when its image or URL components are unavailable or invalid.","type":["string","null"],"examples":["https://customerportalimage.revcent.com/YKdbIY8knlmGpbO26RW0.png"]},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"The available tracking domain used by portal_urls, or null when its public ID, name or domain is unavailable or invalid.","properties":{"id":{"description":"The 20 character RevCent ID of the tracking domain.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Tracking Domain"]},"domain_name":{"description":"The tracking domain used after the portal subdomain in portal_urls. Internationalized domains are supported.","type":"string","examples":["mycompany.com"]}}},"recaptcha":{"description":"The public reCAPTCHA site key and a redaction placeholder. No secret credential is returned.","type":"object","additionalProperties":false,"properties":{"site_key":{"description":"The saved public reCAPTCHA site key; empty when unavailable. An empty saved string is preserved.","type":"string","examples":["6LcxXyYHhPjN1_AbCdEfGhIjKlMn"]},"secret_key":{"description":"A redaction placeholder: six asterisks (******) when site_key has a saved string value, including an empty string; otherwise empty. This marker does not confirm that a usable secret is configured.","type":"string","examples":["******"]}}},"portal_urls":{"description":"Portal page URLs derived from tracking_domain. All four strings are empty when tracking_domain is null. The main URL can be used as the iframe source for same-domain portal integration.","type":"object","additionalProperties":false,"properties":{"main":{"description":"The main portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer"]},"register":{"description":"The register portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/register"]},"login":{"description":"The login portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/login"]},"account":{"description":"The account portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/account"]}}},"display_name":{"description":"The saved display name; may be empty. The portal interface uses name when display_name is empty; this response retains the empty saved value.","type":"string","examples":["My Company"]},"footer_html":{"description":"The saved footer HTML, returned unchanged; empty when unavailable.","type":"string","examples":["<div style=\"text-align: center\"><p>Copyright 2024 My Company</p><a href=\"https://www.mycompany.com\" target=\"_blank\">www.mycompany.com</a></div>"]},"smtp_profile":{"type":["object","null"],"additionalProperties":false,"description":"The available SMTP profile associated with portal emails, or null when unavailable or invalid.","properties":{"id":{"description":"The 20 character RevCent ID of the SMTP profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My SMTP Profile"]}}},"customer_emails":{"type":"object","additionalProperties":false,"description":"Saved registration-confirmation and password-reset email templates. Text is returned unchanged; unavailable text becomes empty and unavailable recipient arrays become empty arrays.","properties":{"customer_account_confirm_email":{"type":"object","additionalProperties":false,"description":"The saved registration confirmation email template.","properties":{"to_cc":{"type":"array","description":"Saved CC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["cc@example.com"]}},"to_bcc":{"type":"array","description":"Saved BCC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["bcc@example.com"]}},"from":{"type":"string","description":"The saved sender address; may be empty.","examples":["no-reply@example.com"]},"from_name":{"type":"string","description":"The saved sender name; may be empty.","examples":["Example Company"]},"subject":{"type":"string","description":"The saved email subject; may be empty.","examples":["Confirm Your Registration"]},"html":{"description":"The saved registration confirmation HTML template, returned unchanged; may be empty. {{email_code}} represents the customer's registration confirmation code.","type":"string","examples":["<div style=\"text-align: center\"><br><h2>Thanks For Registering!</h2><h4>Your Confirmation Code Is Below</h4><br><strong>{{email_code}}</strong></div>"]}}},"customer_account_password_reset":{"type":"object","additionalProperties":false,"description":"The saved password reset email template.","properties":{"to_cc":{"type":"array","description":"Saved CC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["cc@example.com"]}},"to_bcc":{"type":"array","description":"Saved BCC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["bcc@example.com"]}},"from":{"type":"string","description":"The saved sender address; may be empty.","examples":["no-reply@example.com"]},"from_name":{"type":"string","description":"The saved sender name; may be empty.","examples":["Example Company"]},"subject":{"type":"string","description":"The saved email subject; may be empty.","examples":["Password Reset Request"]},"html":{"description":"The saved password reset HTML template, returned unchanged; may be empty. {{email_code}} represents the customer's password reset code.","type":"string","examples":["<div style=\"text-align: center\"><br><h2>Password Reset Request</h2><h4>Your Password Reset Code Is Below</h4><br><strong>{{email_code}}</strong></div>"]}}}}},"customer_filters":{"type":"object","additionalProperties":false,"description":"Available campaign and shop associations from the saved portal filters. Matching either a configured campaign or shop includes the customer's related sales in the portal. Unavailable associations are omitted, so empty returned arrays do not necessarily mean no restriction was configured.","properties":{"campaign":{"type":"array","description":"Available campaigns from the saved filter. Order and duplicates are preserved, with no fixed response cap. Empty output may reflect unavailable associations.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Campaign"]}}}},"third_party_shop":{"type":"array","description":"Available shops from the saved filter. Order and duplicates are preserved, with no fixed response cap. Empty output may reflect unavailable associations.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Third Party Shop"]}}}}}},"customer_permissions":{"type":"object","additionalProperties":false,"description":"The portal's twelve saved permission flags. Each returns false unless explicitly enabled.","properties":{"contact_modify":{"type":"boolean","description":"Whether customers can modify their contact information in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_add":{"type":"boolean","description":"Whether customers can add credit cards in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_remove":{"type":"boolean","description":"Whether customers can remove credit cards in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_set_default":{"type":"boolean","description":"Whether customers can set a default credit card in the portal. Returns false unless explicitly enabled.","examples":[false]},"shipping_modify_ship_to":{"type":"boolean","description":"Whether customers can modify their shipping information in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_renew":{"type":"boolean","description":"Whether customers can renew their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_activate":{"type":"boolean","description":"Whether customers can re-activate their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_suspend":{"type":"boolean","description":"Whether customers can suspend their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_cancel":{"type":"boolean","description":"Whether customers can cancel their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"trial_expire":{"type":"boolean","description":"Whether customers can expire their trials in the portal. Returns false unless explicitly enabled.","examples":[false]},"trial_cancel":{"type":"boolean","description":"Whether customers can cancel their trials in the portal. Returns false unless explicitly enabled.","examples":[false]},"salvage_transaction_process":{"type":"boolean","description":"Whether customers can manually process salvage transactions in the portal. Returns false unless explicitly enabled.","examples":[false]}}},"create_non_existing_customer":{"description":"Whether new customers may register through the portal. Returns false unless explicitly enabled.","type":"boolean","examples":[false]},"create_non_existing_customer_campaign":{"description":"The available campaign associated with new customer registration, or null when unavailable or invalid.","type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Campaign"]}}},"updated_date_unix":{"description":"Last update time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","description":"The resources returned by the request.","maxItems":25},"total_count":{"description":"The total number of available customer portals in the account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The total number of result pages, calculated using the requested limit and rounded up. This may exceed the maximum requestable page of 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Customer Portal","description":"Create a Customer Portal, which will issue a unique Customer Portal ID. You will have the ability to embed the portal as an iFrame on your own website when properly configured with the same domain tracking domain associated.<br><br>Note: A SMTP Profile, tracking domain and ReCaptcha must have been previously set up before creating a customer portal.","operationId":"CreateCustomerPortal","x-api-permission-description":"Allows the creation of customer portals.","x-api-permission":"customer_portal:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/customer/customer-portal","x-kb-name":"Customer Portals","x-md-link":"markdown/mcp/operation/CreateCustomerPortal.md","tags":["Customer Portals"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Customer Portal name. Must be unique from other Customer Portal names.","examples":["Example"]},"description":{"type":"string","description":"The Customer Portal description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Customer Portal is enabled."},"tracking_domain":{"type":"string","description":"The 20 character tracking domain ID to use for the customer portal. This is required. Make sure the tracking domain is set up and has an active SSL certificate before using it in the portal. If you need to set up a tracking domain, please see the Create A Tracking Domain API endpoint.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"recaptcha":{"description":"The reCAPTCHA settings to prevent bots from registering for the portal. This is required. Get a free one here: https://www.google.com/recaptcha/admin.","type":"object","additionalProperties":false,"properties":{"site_key":{"description":"The reCAPTCHA v2 'Im Not A Robot' site key for the domain associated with the tracking domain. Required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"secret_key":{"description":"The reCAPTCHA v2 'Im Not A Robot' secret key for the domain associated with the tracking domain. Required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["site_key","secret_key"]},"display_name":{"description":"The customer portal display name. This is what will be displayed to customers using the portal. If blank, portal name will be used.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"footer_html":{"description":"The customer portal footer HTML. This is where you can add custom text, links, and more to the footer of the customer portal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"smtp_profile":{"type":"string","description":"The 20 character SMTP profile ID to use for the customer portal. This is required.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_emails":{"type":"object","additionalProperties":false,"description":"Customize the portal emails for both registration confirmation and password reset. Each email type has its own options and template HTML. RevCent will send the emails to the customers' email address in question upon registration or password reset. Make sure to place the {{email_code}} shortcode in both templates, as the customer will require them for both methods.","properties":{"customer_account_confirm_email":{"type":"object","additionalProperties":false,"description":"The customer account confirmation email settings.","properties":{"to_cc":{"type":"array","description":"An array of email addresses to CC on the customer account confirmation email.","items":{"type":"string","description":"The email address to CC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"to_bcc":{"type":"array","description":"An array of email addresses to BCC on the customer account confirmation email.","items":{"type":"string","description":"The email address to BCC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"from":{"type":"string","description":"The email address to use as the sender. Should match email used in SMTP profile to avoid errors","examples":["aaaaaaaaaaaaaaaaaaaa"]},"from_name":{"type":"string","description":"The name to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subject":{"type":"string","description":"The subject of the customer account confirmation email.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"html":{"description":"The customer account confirmation email template HTML. Make sure to place the {{email_code}} shortcode in your template HTML below. The customer will need the code to confirm their registration in the portal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["from"]},"customer_account_password_reset":{"type":"object","additionalProperties":false,"description":"The customer account password reset email settings.","properties":{"to_cc":{"type":"array","description":"An array of email addresses to CC on the customer account password reset email.","items":{"type":"string","description":"The email address to CC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"to_bcc":{"type":"array","description":"An array of email addresses to BCC on the customer account password reset email.","items":{"type":"string","description":"The email address to BCC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"from":{"type":"string","description":"The email address to use as the sender. Should match email used in SMTP profile to avoid errors.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"from_name":{"type":"string","description":"The name to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subject":{"type":"string","description":"The subject of the customer account password reset email.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"html":{"description":"The customer account password reset email template HTML. Important: Make sure to place the {{email_code}} shortcode in your template HTML. The customer will need the code to reset their password.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["from"]}},"required":["customer_account_confirm_email","customer_account_password_reset"]},"customer_filters":{"type":"object","additionalProperties":false,"description":"The customer filters are used to determine which customers are able to access the customer portal. If no filters are set, all customers will be able to access the portal.","properties":{"campaign":{"type":"array","description":"An array of campaigns, used to allow customers associated with at least one of the campaign(s) to access the portal. Leave empty to not require campaign association.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"third_party_shop":{"type":"array","description":"An array of third party shops, used to allow customers associated with at least one of the third party shops to access the portal. Leave empty to not require third party shop association.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}}},"customer_permissions":{"type":"object","additionalProperties":false,"description":"The customer permissions are used to determine what customers can do in the customer portal. Only enable the permissions for the actions you want customers to be able to perform in the portal. For example, if you don't want customers to be able to cancel their subscriptions in the portal, then make sure the subscription_cancel permission is set to false.","properties":{"contact_modify":{"type":"boolean","description":"Whether customers can modify their contact information in the portal."},"credit_card_add":{"type":"boolean","description":"Whether customers can add credit cards in the portal."},"credit_card_remove":{"type":"boolean","description":"Whether customers can remove credit cards in the portal."},"credit_card_set_default":{"type":"boolean","description":"Whether customers can set a default credit card in the portal."},"shipping_modify_ship_to":{"type":"boolean","description":"Whether customers can modify their shipping information in the portal."},"subscription_renew":{"type":"boolean","description":"Whether customers can renew their subscriptions in the portal."},"subscription_activate":{"type":"boolean","description":"Whether customers can re-activate their subscriptions in the portal."},"subscription_suspend":{"type":"boolean","description":"Whether customers can suspend their subscriptions in the portal."},"subscription_cancel":{"type":"boolean","description":"Whether customers can cancel their subscriptions in the portal."},"trial_expire":{"type":"boolean","description":"Whether customers can expire their trials in the portal."},"trial_cancel":{"type":"boolean","description":"Whether customers can cancel their trials in the portal."},"salvage_transaction_process":{"type":"boolean","description":"Whether customers can manually process salvage transactions in the portal."}}},"create_non_existing_customer":{"description":"Whether to allow a non-existing customer to register for the portal. Recommended set to false.","type":"boolean"},"create_non_existing_customer_campaign":{"description":"The campaign ID to use for non-existing customers who register through the customer portal when create_non_existing_customer is true.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","tracking_domain","recaptcha","smtp_profile","customer_emails"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_portal_id":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_portals/{customer_portal_id}":{"get":{"summary":"Get A Customer Portal","description":"Retrieve a customer portal’s settings using its customer portal ID.","operationId":"GetCustomerPortal","x-api-permission-description":"Allows the retrieval of customer portals.","x-api-permission":"customer_portal:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"","x-kb-link":"https://kb.revcent.com/en/customer/customer-portal","x-kb-name":"Customer Portals","x-md-link":"markdown/mcp/operation/GetCustomerPortal.md","tags":["Customer Portals"],"parameters":[{"in":"path","name":"customer_portal_id","description":"The 20 character RevCent ID of the customer portal to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The retrieved customer portal and API call details.","properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The time this retrieval was initiated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"Creation time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The portal’s 20 character RevCent ID, matching the requested customer_portal_id.","type":"string","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Customer Portal"]},"description":{"description":"The saved portal description; empty when unavailable.","type":"string","examples":["My customer portal description."]},"enabled":{"description":"Whether the portal is enabled. Returns true unless explicitly disabled.","type":"boolean","examples":[true]},"logo":{"description":"The portal logo URL, or null when its image or URL components are unavailable or invalid.","type":["string","null"],"examples":["https://customerportalimage.revcent.com/YKdbIY8knlmGpbO26RW0.png"]},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"The available tracking domain used by portal_urls, or null when its public ID, name or domain is unavailable or invalid.","properties":{"id":{"description":"The 20 character RevCent ID of the tracking domain.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Tracking Domain"]},"domain_name":{"description":"The tracking domain used after the portal subdomain in portal_urls. Internationalized domains are supported.","type":"string","examples":["mycompany.com"]}}},"recaptcha":{"description":"The public reCAPTCHA site key and a redaction placeholder. No secret credential is returned.","type":"object","additionalProperties":false,"properties":{"site_key":{"description":"The saved public reCAPTCHA site key; empty when unavailable. An empty saved string is preserved.","type":"string","examples":["6LcxXyYHhPjN1_AbCdEfGhIjKlMn"]},"secret_key":{"description":"A redaction placeholder: six asterisks (******) when site_key has a saved string value, including an empty string; otherwise empty. This marker does not confirm that a usable secret is configured.","type":"string","examples":["******"]}}},"portal_urls":{"description":"Portal page URLs derived from tracking_domain. All four strings are empty when tracking_domain is null. The main URL can be used as the iframe source for same-domain portal integration.","type":"object","additionalProperties":false,"properties":{"main":{"description":"The main portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer"]},"register":{"description":"The register portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/register"]},"login":{"description":"The login portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/login"]},"account":{"description":"The account portal page URL; empty when no valid tracking domain is available.","type":"string","examples":["https://portal.mycompany.com/customer/account"]}}},"display_name":{"description":"The saved display name; may be empty. The portal interface uses name when display_name is empty; this response retains the empty saved value.","type":"string","examples":["My Company"]},"footer_html":{"description":"The saved footer HTML, returned unchanged; empty when unavailable.","type":"string","examples":["<div style=\"text-align: center\"><p>Copyright 2024 My Company</p><a href=\"https://www.mycompany.com\" target=\"_blank\">www.mycompany.com</a></div>"]},"smtp_profile":{"type":["object","null"],"additionalProperties":false,"description":"The available SMTP profile associated with portal emails, or null when unavailable or invalid.","properties":{"id":{"description":"The 20 character RevCent ID of the SMTP profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My SMTP Profile"]}}},"customer_emails":{"type":"object","additionalProperties":false,"description":"Saved registration-confirmation and password-reset email templates. Text is returned unchanged; unavailable text becomes empty and unavailable recipient arrays become empty arrays.","properties":{"customer_account_confirm_email":{"type":"object","additionalProperties":false,"description":"The saved registration confirmation email template.","properties":{"to_cc":{"type":"array","description":"Saved CC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["cc@example.com"]}},"to_bcc":{"type":"array","description":"Saved BCC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["bcc@example.com"]}},"from":{"type":"string","description":"The saved sender address; may be empty.","examples":["no-reply@example.com"]},"from_name":{"type":"string","description":"The saved sender name; may be empty.","examples":["Example Company"]},"subject":{"type":"string","description":"The saved email subject; may be empty.","examples":["Confirm Your Registration"]},"html":{"description":"The saved registration confirmation HTML template, returned unchanged; may be empty. {{email_code}} represents the customer's registration confirmation code.","type":"string","examples":["<div style=\"text-align: center\"><br><h2>Thanks For Registering!</h2><h4>Your Confirmation Code Is Below</h4><br><strong>{{email_code}}</strong></div>"]}}},"customer_account_password_reset":{"type":"object","additionalProperties":false,"description":"The saved password reset email template.","properties":{"to_cc":{"type":"array","description":"Saved CC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["cc@example.com"]}},"to_bcc":{"type":"array","description":"Saved BCC recipient strings. May be empty; order, duplicates and historical text are preserved, with no fixed response cap.","items":{"type":"string","description":"A saved recipient string; may be empty.","examples":["bcc@example.com"]}},"from":{"type":"string","description":"The saved sender address; may be empty.","examples":["no-reply@example.com"]},"from_name":{"type":"string","description":"The saved sender name; may be empty.","examples":["Example Company"]},"subject":{"type":"string","description":"The saved email subject; may be empty.","examples":["Password Reset Request"]},"html":{"description":"The saved password reset HTML template, returned unchanged; may be empty. {{email_code}} represents the customer's password reset code.","type":"string","examples":["<div style=\"text-align: center\"><br><h2>Password Reset Request</h2><h4>Your Password Reset Code Is Below</h4><br><strong>{{email_code}}</strong></div>"]}}}}},"customer_filters":{"type":"object","additionalProperties":false,"description":"Available campaign and shop associations from the saved portal filters. Matching either a configured campaign or shop includes the customer's related sales in the portal. Unavailable associations are omitted, so empty returned arrays do not necessarily mean no restriction was configured.","properties":{"campaign":{"type":"array","description":"Available campaigns from the saved filter. Order and duplicates are preserved, with no fixed response cap. Empty output may reflect unavailable associations.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Campaign"]}}}},"third_party_shop":{"type":"array","description":"Available shops from the saved filter. Order and duplicates are preserved, with no fixed response cap. Empty output may reflect unavailable associations.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Third Party Shop"]}}}}}},"customer_permissions":{"type":"object","additionalProperties":false,"description":"The portal's twelve saved permission flags. Each returns false unless explicitly enabled.","properties":{"contact_modify":{"type":"boolean","description":"Whether customers can modify their contact information in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_add":{"type":"boolean","description":"Whether customers can add credit cards in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_remove":{"type":"boolean","description":"Whether customers can remove credit cards in the portal. Returns false unless explicitly enabled.","examples":[false]},"credit_card_set_default":{"type":"boolean","description":"Whether customers can set a default credit card in the portal. Returns false unless explicitly enabled.","examples":[false]},"shipping_modify_ship_to":{"type":"boolean","description":"Whether customers can modify their shipping information in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_renew":{"type":"boolean","description":"Whether customers can renew their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_activate":{"type":"boolean","description":"Whether customers can re-activate their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_suspend":{"type":"boolean","description":"Whether customers can suspend their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"subscription_cancel":{"type":"boolean","description":"Whether customers can cancel their subscriptions in the portal. Returns false unless explicitly enabled.","examples":[false]},"trial_expire":{"type":"boolean","description":"Whether customers can expire their trials in the portal. Returns false unless explicitly enabled.","examples":[false]},"trial_cancel":{"type":"boolean","description":"Whether customers can cancel their trials in the portal. Returns false unless explicitly enabled.","examples":[false]},"salvage_transaction_process":{"type":"boolean","description":"Whether customers can manually process salvage transactions in the portal. Returns false unless explicitly enabled.","examples":[false]}}},"create_non_existing_customer":{"description":"Whether new customers may register through the portal. Returns false unless explicitly enabled.","type":"boolean","examples":[false]},"create_non_existing_customer_campaign":{"description":"The available campaign associated with new customer registration, or null when unavailable or invalid.","type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The saved name; may be empty.","type":"string","examples":["My Campaign"]}}},"updated_date_unix":{"description":"Last update time in Unix seconds; zero means unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Customer Portal","description":"Edit a previously created Customer Portal using the Customer Portal ID. Only supplied fields are updated.","operationId":"EditCustomerPortal","x-api-permission-description":"Allows the editing of customer portals.","x-api-permission":"customer_portal:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/customer/customer-portal","x-kb-name":"Customer Portals","x-md-link":"markdown/mcp/operation/EditCustomerPortal.md","tags":["Customer Portals"],"parameters":[{"in":"path","name":"customer_portal_id","description":"The Customer Portal ID","required":true,"schema":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Customer Portal name. Must be unique from other Customer Portal names.","examples":["Example"]},"description":{"type":"string","description":"The Customer Portal description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Customer Portal is enabled."},"tracking_domain":{"type":"string","description":"The 20 character tracking domain ID to use for the customer portal. Make sure the tracking domain is set up and has an active SSL certificate before using it in the portal. If you need to set up a tracking domain, please see the Create A Tracking Domain API endpoint.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"recaptcha":{"description":"The reCAPTCHA settings to prevent bots from registering for the portal. Get a free one here: https://www.google.com/recaptcha/admin.","type":"object","additionalProperties":false,"properties":{"site_key":{"description":"The reCAPTCHA v2 'Im Not A Robot' site key for the domain associated with the tracking domain.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"secret_key":{"description":"The reCAPTCHA v2 'Im Not A Robot' secret key for the domain associated with the tracking domain.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["site_key","secret_key"]},"display_name":{"description":"The customer portal display name. This is what will be displayed to customers using the portal. If blank, portal name will be used.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"footer_html":{"description":"The customer portal footer HTML. This is where you can add custom text, links, and more to the footer of the customer portal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"smtp_profile":{"type":"string","description":"The 20 character SMTP profile ID to use for the customer portal.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_emails":{"type":"object","additionalProperties":false,"description":"Customize the portal emails for both registration confirmation and password reset. Each email type has its own options and template HTML. RevCent will send the emails to the customers' email address in question upon registration or password reset. Make sure to place the {{email_code}} shortcode in both templates, as the customer will require them for both methods.","properties":{"customer_account_confirm_email":{"type":"object","additionalProperties":false,"description":"The customer account confirmation email settings.","properties":{"to_cc":{"type":"array","description":"An array of email addresses to CC on the customer account confirmation email.","items":{"type":"string","description":"The email address to CC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"to_bcc":{"type":"array","description":"An array of email addresses to BCC on the customer account confirmation email.","items":{"type":"string","description":"The email address to BCC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"from":{"type":"string","description":"The email address to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"from_name":{"type":"string","description":"The name to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subject":{"type":"string","description":"The subject of the customer account confirmation email.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"html":{"description":"The customer account confirmation email template HTML. Make sure to place the {{email_code}} shortcode in your template HTML below. The customer will need the code to confirm their registration in the portal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["from","from_name","subject","html","to_cc","to_bcc"]},"customer_account_password_reset":{"type":"object","additionalProperties":false,"description":"The customer account password reset email settings.","properties":{"to_cc":{"type":"array","description":"An array of email addresses to CC on the customer account password reset email.","items":{"type":"string","description":"The email address to CC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"to_bcc":{"type":"array","description":"An array of email addresses to BCC on the customer account password reset email.","items":{"type":"string","description":"The email address to BCC.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"from":{"type":"string","description":"The email address to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"from_name":{"type":"string","description":"The name to use as the sender.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subject":{"type":"string","description":"The subject of the customer account password reset email.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"html":{"description":"The customer account password reset email template HTML. Important: Make sure to place the {{email_code}} shortcode in your template HTML. The customer will need the code to reset their password.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["from","from_name","subject","html","to_cc","to_bcc"]}}},"customer_filters":{"type":"object","additionalProperties":false,"description":"The customer filters are used to determine which customers are able to access the customer portal. If no filters are set, all customers will be able to access the portal.","properties":{"campaign":{"type":"array","description":"An array of campaigns, used to allow customers associated with at least one of the campaign(s) to access the portal. Leave empty to not require campaign association.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"third_party_shop":{"type":"array","description":"An array of third party shops, used to allow customers associated with at least one of the third party shops to access the portal. Leave empty to not require third party shop association.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}}},"customer_permissions":{"type":"object","additionalProperties":false,"description":"The customer permissions are used to determine what customers can do in the customer portal. Only enable the permissions for the actions you want customers to be able to perform in the portal. For example, if you don't want customers to be able to cancel their subscriptions in the portal, then make sure the subscription_cancel permission is set to false.","properties":{"contact_modify":{"type":"boolean","description":"Whether customers can modify their contact information in the portal."},"credit_card_add":{"type":"boolean","description":"Whether customers can add credit cards in the portal."},"credit_card_remove":{"type":"boolean","description":"Whether customers can remove credit cards in the portal."},"credit_card_set_default":{"type":"boolean","description":"Whether customers can set a default credit card in the portal."},"shipping_modify_ship_to":{"type":"boolean","description":"Whether customers can modify their shipping information in the portal."},"subscription_renew":{"type":"boolean","description":"Whether customers can renew their subscriptions in the portal."},"subscription_activate":{"type":"boolean","description":"Whether customers can re-activate their subscriptions in the portal."},"subscription_suspend":{"type":"boolean","description":"Whether customers can suspend their subscriptions in the portal."},"subscription_cancel":{"type":"boolean","description":"Whether customers can cancel their subscriptions in the portal."},"trial_expire":{"type":"boolean","description":"Whether customers can expire their trials in the portal."},"trial_cancel":{"type":"boolean","description":"Whether customers can cancel their trials in the portal."},"salvage_transaction_process":{"type":"boolean","description":"Whether customers can manually process salvage transactions in the portal."}}},"create_non_existing_customer":{"description":"Whether to allow a non-existing customer to register for the portal. Recommended set to false.","type":"boolean"},"create_non_existing_customer_campaign":{"description":"The campaign ID to use for non-existing customers who register through the customer portal when create_non_existing_customer is true.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_portal_id":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/customer_portals/{customer_portal_id}/delete":{"post":{"summary":"Delete A Customer Portal","description":"Delete a specific Customer Portal using the Customer Portal ID and delete path.","operationId":"DeleteCustomerPortal","x-api-permission-description":"Allows the deletion of customer portals.","x-api-permission":"customer_portal:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteCustomerPortal.md","tags":["Customer Portals"],"parameters":[{"in":"path","name":"customer_portal_id","description":"The Customer Portal ID","required":true,"schema":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"customer_portal_id":{"type":"string","description":"A 20 character customer portal ID.","minLength":20,"maxLength":20,"examples":["gYBmr5WpdQUnNJPBMAbk"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/discounts":{"get":{"summary":"Get Discounts","description":"Retrieve a page of discounts matching the supplied filters, newest first. Supply the required date range, limit and page. When customer_id is provided, the date range is validated but does not restrict the returned discounts.","operationId":"GetDiscounts","x-api-permission-description":"Allows the retrieval of discounts.","x-api-permission":"discount:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, page and limit are required. The date range may span at most 90 days, including exactly 90 days. The start is inclusive and the end exclusive. Supplying customer_id bypasses date filtering, but both dates remain required and validated. Requests are limited to pages 1–20; page 0 is treated as page 1.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetDiscounts.md","tags":["Discounts"],"parameters":[{"description":"Inclusive creation-date range start as a Unix timestamp in seconds. The end must be at or after the start, with a maximum span of 90 days. Required and validated even when customer_id bypasses date filtering.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive creation-date range end as a Unix timestamp in seconds. The end must be at or after the start, with a maximum span of 90 days. Required and validated even when customer_id bypasses date filtering.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Required number of discounts per page, from 1 through 25. No default is applied.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 1 through 20; 0 is accepted as an alias for page 1.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Match any of up to 50 distinct campaign IDs. Repeat the query parameter for multiple IDs.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"The 20 character RevCent ID of the campaign.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Match any of up to 50 distinct three-letter currency codes. Values are converted to uppercase. Repeat the query parameter for multiple codes.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"],"minLength":3,"maxLength":3}},"style":"form","explode":true},{"name":"payment_type_filter","in":"query","description":"Match any of the supplied payment types. Repeat the query parameter for multiple values.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Match any of up to 50 distinct shop IDs. Repeat the query parameter for multiple IDs.","required":false,"schema":{"type":"array","items":{"type":"string","description":"The 20 character RevCent ID of the shop.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"description":"Match up to 50 metadata name/value pairs. Alternatives with the same name use OR; different names use AND. METADATA_NAME_EXISTS matches the name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"The customer’s 20 character RevCent ID. Restricts results to this customer and bypasses date filtering; the required date range is still validated.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of discounts matching the request filters.","properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code; 1 indicates success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"The number of discounts in this page’s results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page number; a submitted page of 0 is returned as 1.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Unix timestamp, in seconds, when this record was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"coupon":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated coupon.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"name":{"description":"The coupon name.","type":"string","examples":["10 Percent Off Coupon"]},"description":{"description":"The coupon description.","type":"string","examples":["Coupon for 10 percent off the first order."]},"coupon_code":{"description":"The coupon code.","type":"string","examples":["10percent"]}},"type":"object","description":"The available associated coupon summary; omitted when unavailable."},"discount_amount":{"description":"The discount amount in major currency units of iso_currency, rounded to two decimal places. Historical negative and zero amounts may be returned; omitted when unavailable or invalid.","type":"number","format":"float","examples":[9.99]},"discount_percent":{"description":"The discount in percentage points: 10 means 10%. Rounded to two decimal places; historical negative or greater-than-100 values may be returned. Omitted when unavailable or not representable as a finite number.","type":"number","format":"float","examples":[10]},"discount_type":{"type":"string","description":"Whether the discount is a fixed amount (amount) or a percentage (percent).","enum":["amount","percent"],"examples":["amount","percent"]},"name":{"type":"string","description":"The discount name.","examples":["10 Percent Off Coupon"]},"customer":{"type":"object","description":"The available customer summary associated with the discount; omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer’s country as an ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer’s recorded email address, when available. Historical values may not match current email formatting rules.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when provided.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when this record was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the associated customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs associated with the customer, in their existing order. May be empty.","maxItems":50},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when this record was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"description":"The customer status.","examples":["Chargeback"]}}},"third_party_shop":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object","description":"The available associated shop summary; omitted when unavailable."},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when this record was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sales IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sales IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipping IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trials IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscriptions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewals IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transactions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related ai threads IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related ai assistants IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related paypal transactions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payments IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check directs IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related api calls IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"description":{"type":"string","description":"The discount description.","examples":["Example description"]},"iso_currency":{"type":"string","minLength":3,"maxLength":3,"description":"The three-letter currency code for the discount, preserving its original case. Defaults to USD when no value is supplied or the value is empty; omitted when an explicit value is invalid. Do not infer a currency when this field is omitted.","examples":["USD"]},"campaign_id":{"type":"string","minLength":20,"maxLength":20,"description":"The available campaign's 20 character RevCent ID. Returned together with campaign_name; both are omitted when the summary is unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_name":{"type":"string","description":"The associated campaign's name; may be empty. Returned together with campaign_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs associated with the discount, in their existing order. May be empty.","maxItems":50}}},"type":"array","maxItems":25,"description":"The requested page of discounts, ordered by creation time from newest to oldest. May be empty when no discounts match or the requested page is beyond the available results."},"total_count":{"description":"The total number of available discounts matching all applied filters. When customer_id is supplied, the date range does not restrict this count.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of pages for total_count and the requested limit; 0 when no discounts match. This value may exceed 20, although only pages 1 through 20 can be requested.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/discounts/{discount_id}":{"get":{"summary":"Get A Discount","description":"Retrieve a specific discount and its available related summaries. No query parameters are accepted.","operationId":"GetDiscount","x-api-permission-description":"Allows the retrieval of discounts.","x-api-permission":"discount:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetDiscount.md","tags":["Discounts"],"parameters":[{"in":"path","name":"discount_id","description":"The 20 character RevCent ID of the discount to retrieve.","required":true,"schema":{"description":"The 20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested discount and its available related summaries, returned as one flat object with API response metadata.","properties":{"api_call_id":{"description":"The 20 character RevCent ID for this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code; 1 indicates success.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when this record was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the discount, matching the requested discount_id.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"coupon":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated coupon.","type":"string","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]},"name":{"description":"The coupon name.","type":"string","examples":["10 Percent Off Coupon"]},"description":{"description":"The coupon description.","type":"string","examples":["Coupon for 10 percent off the first order."]},"coupon_code":{"description":"The coupon code.","type":"string","examples":["10percent"]}},"type":"object","description":"The available associated coupon summary; omitted when unavailable."},"discount_amount":{"description":"The discount amount in major currency units of iso_currency, rounded to two decimal places. Historical negative and zero amounts may be returned; omitted when unavailable or invalid.","type":"number","format":"float","examples":[9.99]},"discount_percent":{"description":"The discount in percentage points: 10 means 10%. Rounded to two decimal places; historical negative or greater-than-100 values may be returned. Omitted when unavailable or not representable as a finite number.","type":"number","format":"float","examples":[10]},"discount_type":{"type":"string","description":"Whether the discount is a fixed amount (amount) or a percentage (percent).","enum":["amount","percent"],"examples":["amount","percent"]},"name":{"type":"string","description":"The discount name.","examples":["10 Percent Off Coupon"]},"customer":{"type":"object","description":"The available customer summary associated with the discount; omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer’s country as an ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer’s recorded email address, when available. Historical values may not match current email formatting rules.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when provided.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The Unix timestamp, in seconds, when this record was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the associated customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs associated with the customer, in their existing order. May be empty.","maxItems":50},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when this record was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"description":"The customer status.","examples":["Chargeback"]}}},"third_party_shop":{"additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent ID of the associated shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object","description":"The available associated shop summary; omitted when unavailable."},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when this record was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sales IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sales IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipping IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trials IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscriptions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewals IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transactions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related ai threads IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related ai assistants IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related paypal transactions IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payments IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check directs IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array. This does not establish that no related resources exist.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related api calls IDs. This is a bounded summary, not necessarily a complete relationship history. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"description":{"type":"string","description":"The discount description.","examples":["Example description"]},"iso_currency":{"type":"string","minLength":3,"maxLength":3,"description":"The three-letter currency code for the discount, preserving its original case. Defaults to USD when no value is supplied or the value is empty; omitted when an explicit value is invalid. Do not infer a currency when this field is omitted.","examples":["USD"]},"campaign_id":{"type":"string","minLength":20,"maxLength":20,"description":"The available campaign's 20 character RevCent ID. Returned together with campaign_name; both are omitted when the summary is unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_name":{"type":"string","description":"The associated campaign's name; may be empty. Returned together with campaign_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs associated with the discount, in their existing order. May be empty.","maxItems":50}},"type":"object","additionalProperties":false,"title":"APICallResponseInfo"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/documentation/search":{"get":{"summary":"Search Documentation","description":"Search public documentation using a nonblank search term. Returns up to 20 document links in descending relevance order; fetch a returned URL to read the document. Results may be empty. Pagination and other query parameters are not supported. Authenticated API access is required; no documentation-specific permission is required.","operationId":"SearchDocumentation","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchDocumentation.md","tags":["Documentation"],"parameters":[{"name":"search_term","description":"Search term or phrase. Leading and trailing whitespace is ignored; the term must contain a non-whitespace character.","in":"query","required":true,"schema":{"type":"string","examples":["I want to create a WooCommerce store"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful documentation search, containing relevance-ranked links rather than full document contents.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","description":"Nonempty title identifying the document.","examples":["Business Onboarding Overview"]},"description":{"type":"string","description":"Brief document summary. May be empty.","examples":["This documentation provides an overview of the business onboarding process."]},"content_type":{"type":"string","description":"Document category: file, json, or markdown. This is a category label, not a MIME type.","examples":["markdown"],"enum":["file","json","markdown"]},"url":{"type":"string","description":"Direct URL to fetch the document contents.","examples":["https://revcent.com/documentation/markdown/mcp/guide/BusinessOnboardingOverview.md"]},"score":{"type":"number","description":"Relative relevance score for this result. Higher scores indicate greater relevance.","format":"float","examples":[0.67]}}},"type":"array","maxItems":20,"description":"Up to 20 document links in descending relevance order. May be empty; results are not a complete listing and have no pagination."}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/documents":{"post":{"summary":"Create an evidence document","description":"Generate chargeback evidence for a sale or related transaction, shipment, fraud detection or chargeback. The response includes evidence as JSON and a URL to a Word document.","operationId":"CreateChargebackDocument","x-api-permission-description":"Allows the creation of a chargeback mitigation document.","x-api-permission":"document:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/documents","x-kb-name":"Chargeback Document","x-md-link":"markdown/mcp/operation/CreateChargebackDocument.md","tags":["Chargebacks"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item_type":{"type":"string","enum":["sale","transaction","shipping","fraud_detection","chargeback"],"examples":["sale"]},"item_value":{"type":"string","minLength":1,"description":"Evidence source public ID or the exact alternate identifier supported for the selected item_type. Resolved within the authenticated account. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["item_type","item_value"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"id":{"type":"string","description":"A 20 character document ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"expires_on":{"description":"The date the document URL expires in ISO8601 format. All document URL's expire after 24 hours.","type":"string","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"zip_url":{"type":"string","description":"The document ZIP file, which when unpacked will contain a friendly formatted .docx file and the document_json in a raw .json file.","examples":["https://example.com/return"]},"document_json":{"description":"The raw document JSON containing the details of the originating sale.","type":"object","properties":{"api_call":{"description":"","type":"object","properties":{"api_account":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"description":"","type":"integer","examples":[0]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"method":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"request":{"description":"","type":"object","properties":{"bill_to":{"description":"","type":"object","properties":{"first_name":{"description":"","type":"string","examples":["Alex"]},"last_name":{"description":"","type":"string","examples":["River"]},"address_line_1":{"description":"","type":"string","examples":["123 Example Street"]},"address_line_2":{"description":"","type":"string","examples":["Suite 100"]},"city":{"description":"","type":"string","examples":["Boston"]},"state":{"description":"","type":"string","examples":["MA"]},"zip":{"description":"","type":"string","examples":["02108"]},"country":{"description":"","type":"string","examples":["USA"]},"email":{"description":"","type":"string","examples":["alex@example.com"]},"phone":{"description":"","type":"string","examples":["+12025550123"]}}},"campaign":{"description":"","type":"string","examples":["Example Campaign"]},"customer_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ip_address":{"description":"","type":"string","examples":["192.0.2.10"]},"metadata":{"description":"","type":"array","items":{}},"method":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"","type":"integer","examples":[0]}}}},"ship_to":{"description":"","type":"object","properties":{"first_name":{"description":"","type":"string","examples":["Alex"]},"last_name":{"description":"","type":"string","examples":["River"]},"address_line_1":{"description":"","type":"string","examples":["123 Example Street"]},"address_line_2":{"description":"","type":"string","examples":["Suite 100"]},"city":{"description":"","type":"string","examples":["Boston"]},"state":{"description":"","type":"string","examples":["MA"]},"zip":{"description":"","type":"string","examples":["02108"]},"country":{"description":"","type":"string","examples":["USA"]},"email":{"description":"","type":"string","examples":["alex@example.com"]},"phone":{"description":"","type":"string","examples":["+12025550123"]}}},"shipping":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"amount":{"description":"","type":"integer","examples":[0]},"cost":{"description":"","type":"integer","examples":[0]},"provider":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"free_shipping":{"description":"","type":"boolean"}}}},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"campaign":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]}}},"chargebacks":{"description":"","type":"array","items":{}},"customer":{"description":"","type":"object","properties":{"address_line_1":{"description":"","type":"string","examples":["123 Example Street"]},"address_line_2":{"description":"","type":"string","examples":["Suite 100"]},"blocked":{"description":"","type":"boolean"},"city":{"description":"","type":"string","examples":["Boston"]},"company":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"description":"","type":"string","examples":["USA"]},"device_details":{"description":"","type":"object","properties":{"region_timezone":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"os":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"device_type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"window_size":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"screen_resolution":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"browser":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"region_language":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"email":{"description":"","type":"string","examples":["alex@example.com"]},"email_details":{"description":"","type":"object","properties":{"email":{"description":"","type":"string","examples":["alex@example.com"]},"score":{"description":"","type":"integer","examples":[0]},"deliverable":{"description":"","type":"boolean"},"domain_details":{"description":"","type":"object","properties":{"domain":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"tld":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"registered":{"description":"","type":"boolean"},"registrar_name":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"registered_to":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"disposable":{"description":"","type":"boolean"},"free":{"description":"","type":"boolean"},"custom":{"description":"","type":"boolean"},"dmarc_enforced":{"description":"","type":"boolean"},"spf_strict":{"description":"","type":"boolean"},"valid_mx":{"description":"","type":"boolean"},"accept_all":{"description":"","type":"boolean"},"suspicious_tld":{"description":"","type":"boolean"},"website_exists":{"description":"","type":"boolean"}}},"account_details":{"description":"","type":"object","properties":{"apple":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"facebook":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"},"url":{"description":"","type":"null"},"name":{"description":"","type":"null"},"photo":{"description":"","type":"null"}}},"google":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"},"photo":{"description":"","type":"null"}}},"instagram":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"linkedin":{"description":"","type":"object","properties":{"registered":{"description":"","type":"null"},"photo":{"description":"","type":"null"}}},"microsoft":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"myspace":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"pinterest":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"skype":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"spotify":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"tumblr":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"twitter":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"yahoo":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}}}}}},"enabled":{"description":"","type":"boolean"},"first_name":{"description":"","type":"string","examples":["Alex"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ip_details":{"description":"","type":"object","properties":{"ip":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score":{"description":"","type":"integer","examples":[0]},"country":{"description":"","type":"string","examples":["USA"]},"state_prov":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"city":{"description":"","type":"string","examples":["Boston"]},"timezone_offset":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"isp_name":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"latitude":{"description":"","type":"number","examples":[0]},"longitude":{"description":"","type":"number","examples":[0]},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"tor":{"description":"","type":"boolean"},"vpn":{"description":"","type":"boolean"},"web_proxy":{"description":"","type":"boolean"},"public_proxy":{"description":"","type":"boolean"},"spam_number":{"description":"","type":"integer","examples":[0]}}},"last_name":{"description":"","type":"string","examples":["River"]},"lat":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"lon":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"phone":{"description":"","type":"string","examples":["+12025550123"]},"phone_details":{"description":"","type":"object","properties":{"number":{"description":"","type":"integer","examples":[0]},"valid":{"description":"","type":"boolean"},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"description":"","type":"string","examples":["USA"]},"carrier":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score":{"description":"","type":"integer","examples":[0]},"account_details":{"description":"","type":"object","properties":{"facebook":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"google":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"twitter":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"instagram":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"}}},"yahoo":{"description":"","type":"object","properties":{"registered":{"description":"","type":"null"}}},"whatsapp":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"},"photo":{"description":"","type":"null"},"last_seen":{"description":"","type":"null"}}},"telegram":{"description":"","type":"object","properties":{"registered":{"description":"","type":"boolean"},"photo":{"description":"","type":"null"},"last_seen":{"description":"","type":"null"}}},"viber":{"description":"","type":"object","properties":{"registered":{"description":"","type":"null"},"photo":{"description":"","type":"null"},"last_seen":{"description":"","type":"null"}}}}}}},"state":{"description":"","type":"string","examples":["MA"]},"state_long":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"zip":{"description":"","type":"string","examples":["02108"]}}},"fraud_detection_requests":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fraud_score":{"description":"","type":"integer","examples":[0]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_error":{"description":"","type":"boolean"},"is_fraud_detected":{"description":"","type":"boolean"},"is_sentinel":{"description":"","type":"boolean"},"is_third_party_integration":{"description":"","type":"boolean"},"raw_response":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold":{"description":"","type":"integer","examples":[0]},"score_threshold_bound":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_fraud_detection_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]},"third_party":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]}}}}}}}},"iso_currency":{"description":"","type":"string","examples":["USD"]},"metadata":{"description":"","type":"array","items":{}},"payment_type":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]}}},"products":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]},"price":{"description":"","type":"number","examples":[0]},"quantity":{"description":"","type":"integer","examples":[0]},"sku":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"total_amount":{"description":"","type":"number","examples":[0]}}}},"sale":{"description":"","type":"object","properties":{"amount":{"description":"","type":"number","examples":[0]},"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"shipping":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"amount":{"description":"","type":"integer","examples":[0]},"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fulfillment_account":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]},"fulfillment_center":{"description":"","type":"object","properties":{"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]}}}}},"fulfillment_account_notified":{"description":"","type":"boolean"},"fulfillment_account_notified_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_delivered":{"description":"","type":"boolean"},"is_free":{"description":"","type":"boolean"},"is_shipped":{"description":"","type":"boolean"},"provider":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_delivered_date_unix":{"description":"","type":"integer","examples":[1893499200]},"provider_method":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_tracking":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_tracking_url":{"description":"","type":"string","examples":["https://example.com/return"]},"ship_date_unix":{"description":"","type":"integer","examples":[1893499200]},"ship_to":{"description":"","type":"object","properties":{"first_name":{"description":"","type":"string","examples":["Alex"]},"last_name":{"description":"","type":"string","examples":["River"]},"address_line_1":{"description":"","type":"string","examples":["123 Example Street"]},"address_line_2":{"description":"","type":"string","examples":["Suite 100"]},"city":{"description":"","type":"string","examples":["Boston"]},"state":{"description":"","type":"string","examples":["MA"]},"zip":{"description":"","type":"string","examples":["02108"]},"country":{"description":"","type":"string","examples":["USA"]},"company":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"description":"","type":"string","examples":["alex@example.com"]},"phone":{"description":"","type":"string","examples":["+12025550123"]}}},"shipping_status":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"tracking_entries":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"host":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"hosted_page":{"description":"","type":"null"},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"pathname":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"tracking_domain":{"description":"","type":"object","properties":{"name":{"description":"","type":"string","examples":["Example"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"domain":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"tracking_visitor":{"description":"","type":"object","properties":{"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ip_address":{"description":"","type":"string","examples":["192.0.2.10"]},"ip_details":{"description":"","type":"object","properties":{"ip":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_eu":{"description":"","type":"boolean"},"city":{"description":"","type":"string","examples":["Boston"]},"region":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"region_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"region_type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country_name":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"continent_name":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"continent_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"latitude":{"description":"","type":"number","examples":[0]},"longitude":{"description":"","type":"number","examples":[0]},"postal":{"description":"","type":"null"},"calling_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"asn":{"description":"","type":"object","properties":{"asn":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"","type":"string","examples":["Example"]},"domain":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"route":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"company":{"description":"","type":"object","properties":{"name":{"description":"","type":"string","examples":["Example"]},"domain":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"network":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"languages":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"name":{"description":"","type":"string","examples":["Example"]},"native":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"currency":{"description":"","type":"object","properties":{"name":{"description":"","type":"string","examples":["Example"]},"code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"symbol":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"native":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"plural":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"time_zone":{"description":"","type":"object","properties":{"name":{"description":"","type":"string","examples":["Example"]},"abbr":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"offset":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_dst":{"description":"","type":"boolean"},"current_time":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"threat":{"description":"","type":"object","properties":{"is_tor":{"description":"","type":"boolean"},"is_icloud_relay":{"description":"","type":"boolean"},"is_proxy":{"description":"","type":"boolean"},"is_datacenter":{"description":"","type":"boolean"},"is_anonymous":{"description":"","type":"boolean"},"is_known_attacker":{"description":"","type":"boolean"},"is_known_abuser":{"description":"","type":"boolean"},"is_threat":{"description":"","type":"boolean"},"is_bogon":{"description":"","type":"boolean"},"blocklists":{"description":"","type":"array","items":{}}}}}},"user_agent":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"transactions":{"description":"","type":"array","items":{"description":"","type":"object","properties":{"amount":{"description":"","type":"number","examples":[0]},"approved":{"description":"","type":"boolean"},"created_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_card":{"description":"","type":"object","properties":{"type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"first_6":{"description":"","type":"string","examples":["411111"]},"last_4":{"description":"","type":"string","examples":["1111"]},"expiry_date":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"expiry_month":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"expiry_year":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_details":{"description":"","type":"object","properties":{"card_bin":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_bank":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_card":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_type":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_level":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_country":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_country_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_website":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_phone":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bin_valid":{"description":"","type":"boolean"},"card_issuer":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"declined":{"description":"","type":"boolean"},"error":{"description":"","type":"boolean"},"gateway_auth_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_avs_result_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_cavv_result_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_cvv_result_code":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_name":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_result_phrase":{"description":"The result phrase returned by the gateway.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_transaction_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"held":{"description":"","type":"boolean"},"id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"merchant_account_id":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"description":"","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result_code":{"description":"","type":"integer","examples":[0]}}}}}},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/email_templates":{"get":{"summary":"Get Email Templates","description":"List available email templates, newest first, without their HTML bodies. Use GetEmailTemplate to retrieve a specific template and its HTML. Only enabled templates with template_trigger api_direct can be used with SendSMTPMessage. Supply limit and page; date ranges and other filters are not supported.","operationId":"GetEmailTemplates","x-api-permission-description":"Allows the retrieval of email templates.","x-api-permission":"email_template:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetEmailTemplates.md","tags":["Email Templates"],"parameters":[{"description":"Required number of templates per page, from 1 to 25.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Page 0 is treated as page 1. Pages above 20 cannot be requested, even when total_pages is larger.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of available email templates and pagination totals. Template HTML is not included.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of templates returned in results for this page.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The requested page after page 0 is treated as page 1.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID identifying the email template.","type":"string","title":"Email Template ID","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"name":{"description":"Name of the email template. Omitted when unavailable.","type":"string","examples":["Thank You Email"]},"description":{"description":"Description of the email template. May be empty; omitted when unavailable.","type":"string","examples":["Sends a thank you email to the customer."]},"enabled":{"description":"Whether the template is enabled for sending email. Disabled templates may appear in this list and cannot be used to send a message.","type":"boolean","examples":[true]},"smtp_profile":{"type":"object","additionalProperties":false,"description":"Associated SMTP profile summary. Omitted when unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the SMTP profile.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"The name of the SMTP Profile.","type":"string","examples":["My SMTP Profile"]}}},"template_subject":{"description":"Email subject template. Supports Handlebars placeholders such as {{customer.first_name}}; returned text is not rendered for a recipient.","type":"string","examples":["Thank You {{customer.first_name}} For Purchasing from {{custom_data.store_name}}"]},"template_from":{"description":"Sender email address or Handlebars template. Use an address supported by the associated SMTP profile.","type":"string","examples":["no-reply@mystore.com"]},"template_from_name":{"description":"Sender display name or Handlebars template.","type":"string","examples":["My Store"]},"template_to":{"description":"To recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["{{customer.email}}","manager@mystore.com"]},"maxItems":50},"template_to_cc":{"description":"CC recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["orders@mystore.com"]},"maxItems":50},"template_to_bcc":{"description":"BCC recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["accounting@mystore.com"]},"maxItems":50},"template_trigger":{"description":"Event that triggers the template. api_direct identifies templates intended for SendSMTPMessage; no_trigger identifies a template with no automatic trigger.","type":"string","examples":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"],"enum":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"]},"trigger_sources_allowed":{"type":"array","description":"Allowed shipment origins for shipping_item_shipped and shipping_item_delivered triggers: a new sale, subscription renewal or trial expiration. Returns up to 50 values.","items":{"type":"string","examples":["sale_create","subscription_renew","trial_expire"],"enum":["sale_create","subscription_renew","trial_expire"]},"maxItems":50},"timing":{"type":"object","additionalProperties":false,"description":"Timing settings relative to the triggering event. When disabled, enabled is false, time_value is 0, time_unit is hours and time_relative is after.","properties":{"enabled":{"description":"Whether timing is enabled. A zero time_value does not by itself mean timing is disabled.","type":"boolean","examples":[false]},"time_unit":{"description":"Unit for time_value: hours, days, weeks, months or years. Returns hours when timing is disabled or the unit is unavailable.","type":"string","examples":["hours","days","weeks","months","years"],"enum":["hours","days","weeks","months","years"]},"time_value":{"description":"Nonnegative whole number of time units. Returns 0 when timing is disabled or no usable value is available; may also be 0 when enabled.","type":"integer","examples":[3600],"minimum":0},"time_relative":{"type":"string","description":"Whether the timing is before or after the triggering event. Returns after when timing is disabled or the setting is unavailable.","examples":["after","before"],"enum":["after","before"]}}},"filters":{"type":"object","additionalProperties":false,"description":"Configured event filters, returned as related-resource summaries. Each list contains up to 50 entries and may be empty.","properties":{"campaign":{"description":"Campaign summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the campaign.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the campaign. May be empty.","type":"string","examples":["My Campaign"]}}},"maxItems":50},"product":{"description":"Product summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the product. May be empty.","type":"string","examples":["My Product"]}}},"maxItems":50},"product_group":{"description":"Product group summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product group.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the product group. May be empty.","type":"string","examples":["My Product Group"]}}},"maxItems":50},"third_party_shop":{"description":"Third-party shop summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the third-party shop.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the third-party shop. May be empty.","type":"string","examples":["My Store"]}}},"maxItems":50}}},"custom_data":{"type":"object","additionalProperties":false,"description":"Custom data configuration used by Handlebars placeholders such as {{custom_data.store_name}}. When disabled or unavailable, only enabled:false is returned; source_type and source_value are omitted.","properties":{"enabled":{"description":"Whether a usable custom data configuration is available.","type":"boolean","examples":[false]},"source_type":{"description":"Source of custom data: custom_function or json. Returned only when custom data is enabled.","type":"string","examples":["custom_function","json"],"enum":["custom_function","json"]},"source_value":{"description":"Source text: a 20 character RevCent ID of a function for custom_function, or JSON text for json. Returned only when custom data is enabled.","type":"string","examples":["LY4o2550jwcbXW6GjZnJ","{\"rest\":\"TESst\"}"]}}},"custom_arguments":{"description":"Argument names and instructions to use when preparing custom_arguments for SendSMTPMessage. Returns up to 50 entries. Review each description to determine the value to supply.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Argument name to use in the custom_arguments input of SendSMTPMessage.","type":"string","examples":["thank_you_paragraph"]},"description":{"description":"Instructions describing the value to supply for this custom argument when sending the message.","type":"string","examples":["Generate a customized thank you paragraph based on the customers name."]}}},"maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Email templates on the requested page, newest first. May be empty when no templates are available or the page is beyond the available results."},"total_count":{"minimum":0,"description":"Total number of available email templates across all pages.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"Total number of pages calculated from total_count and the requested limit. May exceed the maximum requestable page of 20; zero when no templates are available.","type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create An Email Template","description":"Create an Email Template, which will issue a unique Email Template ID.","operationId":"CreateEmailTemplate","x-api-permission-description":"Allows the creation of email templates.","x-api-permission":"email_template:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/smtp/email-template","x-kb-name":"Email Templates","x-md-link":"markdown/mcp/operation/CreateEmailTemplate.md","tags":["Email Templates"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The name of the Email Template. Must be unique from other Email Template names. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["Example"]},"description":{"description":"The description of the Email Template.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the Email Template is currently enabled and able to send SMTP messages. If an Email Template is disabled it should not be used to send a SMTP message","type":"boolean"},"smtp_profile":{"type":"string","description":"A 20 character SMTP Profile ID that is used to send the email.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_subject":{"description":"The subject line of the email when sending an SMTP message using the Email Template. Handlebars shortcode is available for this field. Shortcodes can be used within the subject line to have dynamic values when sending an SMTP message. For example, use the handlebars shortcode '{{customer.first_name}}' to have the customers first name dynamically inserted into the subject line when sending an SMTP message. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_from":{"description":"The email address of the sender for the Email Template. Should match the send from email associated with the email templates' SMTP profile to prevent delivery issues. Handlebars shortcode is available for this field. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_from_name":{"description":"The name of the sender for the Email Template. Handlebars shortcode is available for this field.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_to":{"description":"An array of email address shortcodes or actual email addresses that determine the to recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field. Include at least one nonblank recipient. Surrounding whitespace is trimmed and blank entries are ignored.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"minItems":1,"contains":{"type":"string","description":"At least one recipient must contain non-whitespace text."}},"template_to_cc":{"description":"An array of email address shortcodes or actual email addresses that determine the CC recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"template_to_bcc":{"description":"An array of email address shortcodes or actual email addresses that determine the BCC recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"template_html":{"description":"The HTML email body, using Handlebars expressions for dynamic content. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_trigger":{"description":"The trigger setting determines how the Email Template can be triggered to send a SMTP message. An Email Template with a trigger setting of 'api_direct' can be used to send a SMTP message directly via the API using the SendSMTPMessage operation, otherwise the email template is triggered when the specified event occurs within your RevCent account.<br><br>Options:<br><br><em>no_trigger</em>: If a draft or using the email template within an external process.<br><br><em>api_direct</em>: Trigger the template to send an SMTP message via the RevCent API/MCP or via AI through AI Web Chat or AI Assistants. AI can trigger an email template via System Tools and provide custom arguments to the template when triggered.<br><br><em>sale_create_success</em>: A sale was created and payment was successful. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>sale_create_decline</em>: A sale was created, but all payment attempt(s) failed either due to error or decline. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>pending_sale_no_payment</em>: A pending sale was created, however no payment attempt(s) were ever made. I.e. abandoned cart. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>fraud_alert_create_success</em>: A sale was created, either successfully or not, and fraud was detected. However, payment was not prevented and therefore a Fraud Detection was not created. Instead, the sale was marked with a fraud alert allowing manual review. The input_data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/sentinel.json\" target=\"_blank\">sentinel object</a>.<br><br><em>sentinel_alert_create_success</em>: A sentinel fraud detection occurred. This is the same as 'fraud_alert_create_success' but has different input_data. The input_data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/sentinel.json\" target=\"_blank\">sentinel object</a>.<br><br><em>ai_memo_create_success</em>: An AI Assistant created an AI Memo. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/ai_memo.json\" target=\"_blank\">AI memo object</a>.<br><br><em>fraud_detection_create_success</em>: A fraud detection was created and attached to a sale. This is different from 'fraud_alert_create_success' and 'sentinel_alert_create_success' as it indicates that payment was prevented due to fraud detection and has different input_data available. The input data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/fraud_detection.json\" target=\"_blank\">fraud detection object</a>.<br><br><em>customer_create_success</em>: A customer was created using the customer create method, NOT due to a new sale. Only API calls for type = customer and method = create will trigger this template (Ex: signup forms, newsletters) in order to not conflict where customers are created by other API methods such as new sales. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/customer.json\" target=\"_blank\">customer object</a>.<br><br><em>pending_refund_create_success</em>: A refund was created. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/pending_refund.json\" target=\"_blank\">pending refund object</a>.<br><br><em>shipping_item_created</em>: A shipment was created in RevCent. Useful for emailing a warehouse. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_shipped</em>: A shipment was shipped. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_delivered</em>: A shipment was delivered. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_voided</em>: A shipment was voided. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>subscription_renew_success</em>: A subscription renewal was successful. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription_renewal.json\" target=\"_blank\">subscription renewal object</a>.<br><br><em>subscription_renew_decline</em>: A subscription renewal was declined. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription_renewal.json\" target=\"_blank\">subscription renewal object</a>.<br><br><em>subscription_renewal_upcoming</em>: A subscription renewal is upcoming. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription.json\" target=\"_blank\">subscription object</a>, NOT the subscription_renewal object.<br><br><em>trial_expire_success</em>: A trial expired successfully. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.<br><br><em>trial_expire_decline</em>: A trial expiration failed due to error or decline. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.<br><br><em>trial_expire_upcoming</em>: A trial expiration is upcoming. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.","type":"string","examples":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"],"enum":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"]},"trigger_sources_allowed":{"type":"array","description":"Only applies to 'shipping_item_shipped' and 'shipping_item_delivered' template triggers. This allows a further refinement for shipping update delivery based on the origination of the shipment. I.e. you can choose to only send shipment update on a new sale, subscription renewal or trial expiration. Leave empty to allow all trigger sources.","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire"],"examples":["sale_create"]}},"timing":{"type":"object","additionalProperties":false,"description":"The timing settings determine when the Email Template should trigger to send a SMTP message when the specified event occurs.<br><br>If timing settings are not enabled, the Email Template will trigger to send a SMTP message immediately when the specified event occurs. If timing settings are enabled, there are two options for when the Email Template can trigger to send a SMTP message, either 'before' or 'after'. If before, the Email Template will trigger to send a SMTP message before the specified event occurs, which only applies to subscription renewals and trial expirations. If after, the Email Template will trigger to send a SMTP message after the specified event occurs.<br><br>Note: The 'api_direct' event type does not have the option for timing settings as it is intended for immediate triggering to send a SMTP message when sending an SMTP message using the SendSMTPMessage operation. Timing defaults to disabled. When enabled is true, supply time_relative, time_unit and a positive integer time_value. When disabled, omit these details; supplied details are ignored.","properties":{"enabled":{"description":"Whether the timing settings are enabled for the Email Template. If timing settings are not enabled, the Email Template will trigger to send a SMTP message immediately when the specified event occurs.","type":"boolean"},"time_unit":{"description":"Time unit for the offset: hours, days, weeks, months or years."},"time_value":{"description":"Positive integer number of time units before or after the trigger when timing is enabled."},"time_relative":{"description":"Whether the Email Template should trigger to send a SMTP message before or after the specified event occurs.<br><br>Note: The 'before' option only applies to triggers 'subscription_renewal_upcoming' and 'trial_expire_upcoming', as those are the only events that can be anticipated before they occur. The 'after' option can be used for all event types, except for 'api_direct', and will trigger to send a SMTP message after the specified event occurs based on the time_unit and time_value."}},"allOf":[{"if":{"properties":{"enabled":{"const":true}},"required":["enabled"]},"then":{"required":["time_relative","time_unit","time_value"],"properties":{"time_unit":{"type":"string","enum":["hours","days","weeks","months","years"],"examples":["hours"]},"time_relative":{"type":"string","enum":["after","before"],"examples":["after"]},"time_value":{"type":"integer","minimum":1,"examples":[1]}}}}]},"filters":{"type":"object","additionalProperties":false,"description":"Filters can be applied to an Email Template to determine whether the template should be triggered when the specified event occurs. For example, if you only want an Email Template to trigger when a sale is made for a specific campaign, you can set up a filter for one or more campaign ID's. When the event occurs, the system will check if the filters are met before triggering the email template to send a SMTP message.","properties":{"campaign":{"description":"The campaign filter checks for the presence of one or more campaign ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the campaign to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product":{"description":"The product filter checks for the presence of one or more product ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the product to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product_group":{"description":"The product group filter checks for the presence of one or more product group ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the product group to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"third_party_shop":{"description":"The third party shop filter checks for the presence of one or more third party shop ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the third party shop to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"custom_data":{"type":"object","additionalProperties":false,"description":"Additional data available to the email template through the custom_data variable. Supply enabled and a source_type/source_value pair, or use only {\"enabled\": false} to disable custom data. A supplied source must be valid even when enabled is false.","properties":{"enabled":{"description":"Whether a custom data source is enabled for the Email Template.","type":"boolean"},"source_type":{"description":"The source of custom data: json for a JSON-encoded object, or custom_function for a RevCent Function. Supply source_value with this field.","type":"string","enum":["custom_function","json"],"examples":["custom_function"]},"source_value":{"description":"For source_type json, a JSON-encoded object (not an array, null or scalar). For source_type custom_function, the 20 character RevCent ID of the function that provides the custom data. Required with source_type, even when enabled is false.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"anyOf":[{"properties":{"enabled":{"const":false,"examples":[false]}},"not":{"anyOf":[{"required":["source_type"]},{"required":["source_value"]}]}},{"required":["source_type","source_value"]}],"allOf":[{"if":{"properties":{"source_type":{"const":"custom_function"}},"required":["source_type"]},"then":{"properties":{"source_value":{"minLength":20,"maxLength":20}}}}]},"custom_arguments":{"description":"A list of custom arguments which should be provided as a name value object within the 'custom_arguments' array input data when sending an SMTP message using the SendSMTPMessage operation. This only applies when the email template trigger is 'api_direct'. Custom arguments are intended to be used by AI to infer values when sending an SMTP message. For example, if you have a custom argument with the description 'Generate a customized thank you paragraph based on the customers name.', when sending an SMTP message using the SendSMTPMessage operation, you can have AI read the custom argument description and infer a value for the custom argument based on the customers name.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Name used in custom_arguments when calling SendSMTPMessage. Use letters and underscores. Names must be unique after conversion to lowercase words joined by underscores, with leading and trailing underscores removed; the resulting name must contain letters and be at most 30 characters.","type":"string","minLength":1,"examples":["Example"]},"description":{"description":"The description of the custom argument instructs what the actual custom argument inferred value should be when sending an SMTP message. Surrounding whitespace is trimmed before the 1,000-character limit is checked.","type":"string","maxLength":1000,"examples":["Example description"]}},"required":["name","description"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","smtp_profile","template_subject","template_from","template_to","template_html","template_trigger"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"email_template_id":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/email_templates/{email_template_id}":{"get":{"summary":"Get An Email Template","description":"Retrieve an email template and its unrendered HTML when available. No query parameters are accepted. Only enabled templates with template_trigger api_direct can be used with SendSMTPMessage.","operationId":"GetEmailTemplate","x-api-permission-description":"Allows the retrieval of email templates.","x-api-permission":"email_template:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetEmailTemplate.md","tags":["Email Templates"],"parameters":[{"in":"path","name":"email_template_id","description":"20 character RevCent ID of the email template to retrieve.","required":true,"schema":{"description":"20 character RevCent ID of the email template.","type":"string","title":"Email Template ID","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested email template, including its configuration and unrendered HTML when available.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested email template. Matches email_template_id in the URL.","type":"string","title":"Email Template ID","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"name":{"description":"Name of the email template. Omitted when unavailable.","type":"string","examples":["Thank You Email"]},"description":{"description":"Description of the email template. May be empty; omitted when unavailable.","type":"string","examples":["Sends a thank you email to the customer."]},"enabled":{"description":"Whether the template is enabled for sending email. A disabled template cannot be used to send a message.","type":"boolean","examples":[true]},"smtp_profile":{"type":"object","additionalProperties":false,"description":"Associated SMTP profile summary. Omitted when unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the SMTP profile.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"The name of the SMTP Profile.","type":"string","examples":["My SMTP Profile"]}}},"template_subject":{"description":"Email subject template. Supports Handlebars placeholders such as {{customer.first_name}}; returned text is not rendered for a recipient.","type":"string","examples":["Thank You {{customer.first_name}} For Purchasing from {{custom_data.store_name}}"]},"template_from":{"description":"Sender email address or Handlebars template. Use an address supported by the associated SMTP profile.","type":"string","examples":["no-reply@mystore.com"]},"template_from_name":{"description":"Sender display name or Handlebars template.","type":"string","examples":["My Store"]},"template_to":{"description":"To recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["{{customer.email}}","manager@mystore.com"]},"maxItems":50},"template_to_cc":{"description":"CC recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["orders@mystore.com"]},"maxItems":50},"template_to_bcc":{"description":"BCC recipient email addresses or Handlebars placeholders, such as {{customer.email}}. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"string","description":"Recipient email address or Handlebars placeholder as configured in the template.","examples":["accounting@mystore.com"]},"maxItems":50},"template_html":{"description":"Unrendered HTML template, which may contain Handlebars placeholders such as {{customer.first_name}}. An available empty string is valid; omitted when unavailable.","type":"string","examples":["<p>Thank you {{customer.first_name}} for purchasing from {{custom_data.store_name}}. We hope you enjoy your product!</p>"]},"template_trigger":{"description":"Event that triggers the template. api_direct identifies templates intended for SendSMTPMessage; no_trigger identifies a template with no automatic trigger.","type":"string","examples":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"],"enum":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"]},"trigger_sources_allowed":{"type":"array","description":"Allowed shipment origins for shipping_item_shipped and shipping_item_delivered triggers: a new sale, subscription renewal or trial expiration. Returns up to 50 values.","items":{"type":"string","examples":["sale_create","subscription_renew","trial_expire"],"enum":["sale_create","subscription_renew","trial_expire"]},"maxItems":50},"timing":{"type":"object","additionalProperties":false,"description":"Timing settings relative to the triggering event. When disabled, enabled is false, time_value is 0, time_unit is hours and time_relative is after.","properties":{"enabled":{"description":"Whether timing is enabled. A zero time_value does not by itself mean timing is disabled.","type":"boolean","examples":[false]},"time_unit":{"description":"Unit for time_value: hours, days, weeks, months or years. Returns hours when timing is disabled or the unit is unavailable.","type":"string","examples":["hours","days","weeks","months","years"],"enum":["hours","days","weeks","months","years"]},"time_value":{"description":"Nonnegative whole number of time units. Returns 0 when timing is disabled or no usable value is available; may also be 0 when enabled.","type":"integer","examples":[3600],"minimum":0},"time_relative":{"type":"string","description":"Whether the timing is before or after the triggering event. Returns after when timing is disabled or the setting is unavailable.","examples":["after","before"],"enum":["after","before"]}}},"filters":{"type":"object","additionalProperties":false,"description":"Configured event filters, returned as related-resource summaries. Each list contains up to 50 entries and may be empty.","properties":{"campaign":{"description":"Campaign summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the campaign.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the campaign. May be empty.","type":"string","examples":["My Campaign"]}}},"maxItems":50},"product":{"description":"Product summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the product. May be empty.","type":"string","examples":["My Product"]}}},"maxItems":50},"product_group":{"description":"Product group summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product group.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the product group. May be empty.","type":"string","examples":["My Product Group"]}}},"maxItems":50},"third_party_shop":{"description":"Third-party shop summaries for this event filter. Returns up to 50 entries; may be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the third-party shop.","examples":["LY4o2550jwcbXW6GjZnJ"],"minLength":20,"maxLength":20},"name":{"description":"Name of the third-party shop. May be empty.","type":"string","examples":["My Store"]}}},"maxItems":50}}},"custom_data":{"type":"object","additionalProperties":false,"description":"Custom data configuration used by Handlebars placeholders such as {{custom_data.store_name}}. When disabled or unavailable, only enabled:false is returned; source_type and source_value are omitted.","properties":{"enabled":{"description":"Whether a usable custom data configuration is available.","type":"boolean","examples":[false]},"source_type":{"description":"Source of custom data: custom_function or json. Returned only when custom data is enabled.","type":"string","examples":["custom_function","json"],"enum":["custom_function","json"]},"source_value":{"description":"Source text: a 20 character RevCent ID of a function for custom_function, or JSON text for json. Returned only when custom data is enabled.","type":"string","examples":["LY4o2550jwcbXW6GjZnJ","{\"rest\":\"TESst\"}"]}}},"custom_arguments":{"description":"Argument names and instructions to use when preparing custom_arguments for SendSMTPMessage. Returns up to 50 entries. Review each description to determine the value to supply.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Argument name to use in the custom_arguments input of SendSMTPMessage.","type":"string","examples":["thank_you_paragraph"]},"description":{"description":"Instructions describing the value to supply for this custom argument when sending the message.","type":"string","examples":["Generate a customized thank you paragraph based on the customers name."]}}},"maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit An Email Template","description":"Edit a previously created Email Template using the Email Template ID. Only supplied fields are updated.","operationId":"EditEmailTemplate","x-api-permission-description":"Allows the editing of email templates.","x-api-permission":"email_template:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/smtp/email-template","x-kb-name":"Email Templates","x-md-link":"markdown/mcp/operation/EditEmailTemplate.md","tags":["Email Templates"],"parameters":[{"in":"path","name":"email_template_id","description":"The Email Template ID","required":true,"schema":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The name of the Email Template. Must be unique from other Email Template names. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["Example"]},"description":{"description":"The description of the Email Template. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the Email Template is currently enabled and able to send SMTP messages. If an Email Template is disabled it should not be used to send a SMTP message","type":"boolean"},"smtp_profile":{"type":"string","description":"A 20 character SMTP Profile ID that is used to send the email.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_subject":{"description":"The subject line of the email when sending an SMTP message using the Email Template. Handlebars shortcode is available for this field. Shortcodes can be used within the subject line to have dynamic values when sending an SMTP message. For example, use the handlebars shortcode '{{customer.first_name}}' to have the customers first name dynamically inserted into the subject line when sending an SMTP message. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_from":{"description":"The email address of the sender for the Email Template. Should match the send from email associated with the email templates' SMTP profile to prevent delivery issues. Handlebars shortcode is available for this field. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_from_name":{"description":"The name of the sender for the Email Template. Handlebars shortcode is available for this field.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_to":{"description":"An array of email address shortcodes or actual email addresses that determine the to recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field. Include at least one nonblank recipient. Surrounding whitespace is trimmed and blank entries are ignored.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"minItems":1,"contains":{"type":"string","description":"At least one recipient must contain non-whitespace text."}},"template_to_cc":{"description":"An array of email address shortcodes or actual email addresses that determine the CC recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"template_to_bcc":{"description":"An array of email address shortcodes or actual email addresses that determine the BCC recipients when sending an SMTP message. Use the shortcode '{{customer.email}}' to utilize the email address of the customer related to the email, if applicable, when sending an SMTP message. Handlebars shortcode is available for this field.","type":"array","items":{"type":"string","description":"An individual email address shortcode or actual email address.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"template_html":{"description":"Replacement HTML for the email body, using Handlebars expressions. Omit to preserve the existing body. Replacing the body preserves existing CSS. Must contain at least one non-whitespace character; surrounding whitespace is trimmed.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"template_trigger":{"description":"The trigger setting determines how the Email Template can be triggered to send a SMTP message. An Email Template with a trigger setting of 'api_direct' can be used to send a SMTP message directly via the API using the SendSMTPMessage operation, otherwise the email template is triggered when the specified event occurs within your RevCent account.<br><br>Options:<br><br><em>no_trigger</em>: If a draft or using the email template within an external process.<br><br><em>api_direct</em>: Trigger the template to send an SMTP message via the RevCent API/MCP or via AI through AI Web Chat or AI Assistants. AI can trigger an email template via System Tools and provide custom arguments to the template when triggered.<br><br><em>sale_create_success</em>: A sale was created and payment was successful. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>sale_create_decline</em>: A sale was created, but all payment attempt(s) failed either due to error or decline. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>pending_sale_no_payment</em>: A pending sale was created, however no payment attempt(s) were ever made. I.e. abandoned cart. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/sale.json\" target=\"_blank\">sale object</a>.<br><br><em>fraud_alert_create_success</em>: A sale was created, either successfully or not, and fraud was detected. However, payment was not prevented and therefore a Fraud Detection was not created. Instead, the sale was marked with a fraud alert allowing manual review. The input_data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/sentinel.json\" target=\"_blank\">sentinel object</a>.<br><br><em>sentinel_alert_create_success</em>: A sentinel fraud detection occurred. This is the same as 'fraud_alert_create_success' but has different input_data. The input_data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/sentinel.json\" target=\"_blank\">sentinel object</a>.<br><br><em>ai_memo_create_success</em>: An AI Assistant created an AI Memo. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/ai_memo.json\" target=\"_blank\">AI memo object</a>.<br><br><em>fraud_detection_create_success</em>: A fraud detection was created and attached to a sale. This is different from 'fraud_alert_create_success' and 'sentinel_alert_create_success' as it indicates that payment was prevented due to fraud detection and has different input_data available. The input data is a <a href=\"https://revcent.com/documentation/files/email_template/input_data/fraud_detection.json\" target=\"_blank\">fraud detection object</a>.<br><br><em>customer_create_success</em>: A customer was created using the customer create method, NOT due to a new sale. Only API calls for type = customer and method = create will trigger this template (Ex: signup forms, newsletters) in order to not conflict where customers are created by other API methods such as new sales. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/customer.json\" target=\"_blank\">customer object</a>.<br><br><em>pending_refund_create_success</em>: A refund was created. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/pending_refund.json\" target=\"_blank\">pending refund object</a>.<br><br><em>shipping_item_created</em>: A shipment was created in RevCent. Useful for emailing a warehouse. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_shipped</em>: A shipment was shipped. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_delivered</em>: A shipment was delivered. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>shipping_item_voided</em>: A shipment was voided. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/shipping.json\" target=\"_blank\">shipping object</a>.<br><br><em>subscription_renew_success</em>: A subscription renewal was successful. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription_renewal.json\" target=\"_blank\">subscription renewal object</a>.<br><br><em>subscription_renew_decline</em>: A subscription renewal was declined. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription_renewal.json\" target=\"_blank\">subscription renewal object</a>.<br><br><em>subscription_renewal_upcoming</em>: A subscription renewal is upcoming. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/subscription.json\" target=\"_blank\">subscription object</a>, NOT the subscription_renewal object.<br><br><em>trial_expire_success</em>: A trial expired successfully. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.<br><br><em>trial_expire_decline</em>: A trial expiration failed due to error or decline. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.<br><br><em>trial_expire_upcoming</em>: A trial expiration is upcoming. The input_data is the <a href=\"https://revcent.com/documentation/files/email_template/input_data/trial.json\" target=\"_blank\">trial object</a>.","type":"string","examples":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"],"enum":["no_trigger","api_direct","sale_create_success","sale_create_decline","pending_sale_no_payment","sentinel_alert_create_success","ai_memo_create_success","fraud_alert_create_success","fraud_detection_create_success","customer_create_success","pending_refund_create_success","shipping_item_created","shipping_item_shipped","shipping_item_delivered","shipping_item_voided","subscription_renew_success","subscription_renew_decline","subscription_renewal_upcoming","trial_expire_success","trial_expire_decline","trial_expire_upcoming"]},"trigger_sources_allowed":{"type":"array","description":"Only applies to 'shipping_item_shipped' and 'shipping_item_delivered' template triggers. This allows a further refinement for shipping update delivery based on the origination of the shipment. I.e. you can choose to only send shipment update on a new sale, subscription renewal or trial expiration. Leave empty to allow all trigger sources.","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire"],"examples":["sale_create"]}},"timing":{"type":"object","additionalProperties":false,"description":"The timing settings determine when the Email Template should trigger to send a SMTP message when the specified event occurs. All properties must be provided if the timing object is present in the request body.<br><br>If timing settings are not enabled, the Email Template will trigger to send a SMTP message immediately when the specified event occurs. If timing settings are enabled, there are two options for when the Email Template can trigger to send a SMTP message, either 'before' or 'after'. If before, the Email Template will trigger to send a SMTP message before the specified event occurs, which only applies to subscription renewals and trial expirations. If after, the Email Template will trigger to send a SMTP message after the specified event occurs.<br><br>Note: The 'api_direct' event type does not have the option for timing settings as it is intended for immediate triggering to send a SMTP message when sending an SMTP message using the SendSMTPMessage operation. Whenever supplied, include enabled and all three timing details, even when disabling timing. time_value must be a positive integer.","properties":{"enabled":{"description":"Whether the timing settings are enabled for the Email Template. If timing settings are not enabled, the Email Template will trigger to send a SMTP message immediately when the specified event occurs.","type":"boolean"},"time_unit":{"description":"Time unit for the offset: hours, days, weeks, months or years.","type":"string","enum":["hours","days","weeks","months","years"],"examples":["hours"]},"time_value":{"description":"Positive integer number of time units before or after the trigger. Required and greater than zero whenever timing is supplied, including when enabled is false.","type":"integer","minimum":1,"examples":[1]},"time_relative":{"type":"string","description":"Whether the Email Template should trigger to send a SMTP message before or after the specified event occurs.<br><br>Note: The 'before' option only applies to triggers 'subscription_renewal_upcoming' and 'trial_expire_upcoming', as those are the only events that can be anticipated before they occur. The 'after' option can be used for all event types, except for 'api_direct', and will trigger to send a SMTP message after the specified event occurs based on the time_unit and time_value.","enum":["after","before"],"examples":["after"]}},"required":["enabled","time_relative","time_unit","time_value"]},"filters":{"type":"object","additionalProperties":false,"description":"Filters can be applied to an Email Template to determine whether the template should be triggered when the specified event occurs. For example, if you only want an Email Template to trigger when a sale is made for a specific campaign, you can set up a filter for one or more campaign ID's. When the event occurs, the system will check if the filters are met before triggering the email template to send a SMTP message.<br><br>When editing, only provide the filter array(s) you wish to modify, including empty array(s) if you wish to remove specific filters.","properties":{"campaign":{"description":"The campaign filter checks for the presence of one or more campaign ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the campaign to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product":{"description":"The product filter checks for the presence of one or more product ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the product to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"product_group":{"description":"The product group filter checks for the presence of one or more product group ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the product group to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"third_party_shop":{"description":"The third party shop filter checks for the presence of one or more third party shop ID's in the related event, and if present whether it matches the specified value.","type":"array","items":{"type":"string","description":"A 20 character RevCent ID for the third party shop to match. Supply the ID without surrounding whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"custom_data":{"type":"object","additionalProperties":false,"description":"Additional data available to the email template through the custom_data variable. Supply enabled and a source_type/source_value pair, or use only {\"enabled\": false} to disable custom data. A supplied source must be valid even when enabled is false.","properties":{"enabled":{"description":"Whether a custom data source is enabled for the Email Template.","type":"boolean"},"source_type":{"description":"The source of custom data: json for a JSON-encoded object, or custom_function for a RevCent Function. Supply source_value with this field.","type":"string","enum":["custom_function","json"],"examples":["custom_function"]},"source_value":{"description":"For source_type json, a JSON-encoded object (not an array, null or scalar). For source_type custom_function, the 20 character RevCent ID of the function that provides the custom data. Required with source_type, even when enabled is false.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"anyOf":[{"properties":{"enabled":{"const":false,"examples":[false]}},"not":{"anyOf":[{"required":["source_type"]},{"required":["source_value"]}]}},{"required":["source_type","source_value"]}],"allOf":[{"if":{"properties":{"source_type":{"const":"custom_function"}},"required":["source_type"]},"then":{"properties":{"source_value":{"minLength":20,"maxLength":20}}}}]},"custom_arguments":{"description":"A list of custom arguments which should be provided as a name value object within the 'custom_arguments' array input data when sending an SMTP message using the SendSMTPMessage operation. This only applies when the email template trigger is 'api_direct'. Custom arguments are intended to be used by AI to infer values when sending an SMTP message. For example, if you have a custom argument with the description 'Generate a customized thank you paragraph based on the customers name.', when sending an SMTP message using the SendSMTPMessage operation, you can have AI read the custom argument description and infer a value for the custom argument based on the customers name. If provided, it will replace the existing custom arguments array, even if empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Name used in custom_arguments when calling SendSMTPMessage. Use letters and underscores. Names must be unique after conversion to lowercase words joined by underscores, with leading and trailing underscores removed; the resulting name must contain letters and be at most 30 characters.","type":"string","minLength":1,"examples":["Example"]},"description":{"description":"The description of the custom argument instructs what the actual custom argument inferred value should be when sending an SMTP message. Surrounding whitespace is trimmed before the 1,000-character limit is checked.","type":"string","maxLength":1000,"examples":["Example description"]}},"required":["name","description"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"email_template_id":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/email_templates/{email_template_id}/delete":{"post":{"summary":"Delete An Email Template","description":"Delete a specific email template using the email template ID and delete path.","operationId":"DeleteEmailTemplate","x-api-permission-description":"Allows the deletion of email templates.","x-api-permission":"email_template:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteEmailTemplate.md","tags":["Email Templates"],"parameters":[{"in":"path","name":"email_template_id","description":"The Email Template ID","required":true,"schema":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"email_template_id":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"result":{"type":"string","examples":["Email template deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fraud_detections":{"get":{"summary":"Get Fraud Detections","description":"Retrieve a page of fraud detections, newest first. Use GetFraudDetection to retrieve an individual detection.","operationId":"GetFraudDetections","x-api-permission-description":"Allows the retrieval of fraud detections.","x-api-permission":"fraud_detection:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date range may span at most 90 days, including exactly 90 days. With customer_id, dates remain required and validated but do not restrict results.","x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/GetFraudDetections.md","tags":["Sentinel Anti-Fraud"],"parameters":[{"description":"Inclusive creation-date range start, as a Unix timestamp in seconds. Must not exceed date_end. Required and validated even with customer_id, which bypasses date filtering.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive creation-date range end, as a Unix timestamp in seconds. At most 90 days (7,776,000 seconds) after date_start; exactly 90 days is allowed. Required and validated even with customer_id, which bypasses date filtering.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Maximum results per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by up to 50 campaign IDs. Explicit campaign selection includes detections from those campaigns even when they are excluded from ordinary lists.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"maxItems":50},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Filter by up to 50 three-letter ISO 4217 currency codes. Query values are converted to uppercase.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"],"minLength":3,"maxLength":3},"maxItems":50},"style":"form","explode":true},{"name":"method_filter","in":"query","description":"Filter by up to 50 values identifying the operation that created the detection. Use the listed query values.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process"],"examples":["sale_create"]},"maxItems":50},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by created for detections not marked false positive, or false_positive for detections marked false positive. These query labels differ from returned status text. Up to 50 values.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["created","false_positive"],"examples":["created","false_positive"]},"maxItems":50},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by up to 50 shop IDs.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"maxItems":50},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Values for the same name are alternatives; different names must all match. Use METADATA_NAME_EXISTS as the value to match any value for that name.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose fraud detections to retrieve. The date range remains required and validated but does not restrict results.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of fraud detections and pagination totals.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of fraud detections in this page of results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"Current page number, starting at 1. A request for page 0 returns page 1.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the fraud detection was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"campaign_id":{"description":"20 character RevCent ID of the associated campaign. Returned together with campaign_name; both are omitted when unavailable.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Name of the associated campaign, returned together with campaign_id.","examples":["AdWords Campaign"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"customer":{"type":"object","description":"Associated customer summary, omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country as a three-letter ISO 3166-1 alpha-3 (ISO 3) country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text. Historical values may not be valid email addresses; omitted when unavailable or empty.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for this customer, when supplied.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name, from 1 to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Metadata value, from 1 to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"When the customer was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"event_date":{"description":"When the fraud event occurred, in ISO 8601 format; omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"event_date_unix":{"description":"When the fraud event occurred, as a Unix timestamp in seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"false_positive":{"type":"boolean","description":"Whether this detection has been marked as not actually fraudulent.","examples":[false]},"fraud_detection_date":{"description":"When fraud was detected, in ISO 8601 format; omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"fraud_detection_date_unix":{"description":"When fraud was detected, as a Unix timestamp in seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"is_third_party_integration":{"type":"boolean","description":"Whether this detection originated from a third-party integration.","examples":[true]},"third_party_integration":{"title":"Third Party Integration","type":"object","additionalProperties":false,"description":"Associated integration account and provider, omitted when unavailable.","properties":{"id":{"description":"20 character RevCent ID of the integration account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"Your name for the integration account.","examples":["My SEON Account"]},"third_party":{"type":"object","description":"Provider associated with the integration account.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the integration provider.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"Name of the integration provider.","examples":["SEON"]}}}}},"third_party_fraud_detection_id":{"type":"string","description":"Fraud detection reference assigned by the third-party service, when available.","examples":["third_party_id123"]},"third_party_order_id":{"type":"string","description":"Order reference assigned by the third-party service, when available.","examples":["third_party_order_id4342"]},"iso_currency":{"description":"Three-letter ISO 4217 currency code; letter case may vary. USD is returned when no currency was supplied. Omitted when the currency is invalid; do not assume a currency when this field is omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether this fraud detection belongs to live mode (true) or test mode (false).","type":"boolean","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name, from 1 to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Metadata value, from 1 to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 metadata name/value pairs.","maxItems":50},"origin_api_call":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the associated API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The original API call type.","type":"string","examples":["sale"]},"method":{"description":"The original API call method.","type":"string","examples":["create"]}},"type":"object","description":"API call associated with the detected event, omitted when unavailable."},"payment_type":{"title":"Payment Type Object","type":"object","additionalProperties":false,"description":"Associated payment type, omitted when unavailable.","properties":{"id":{"oneOf":[{"title":"KnQ0KlNE6kf5mobyV0pN","type":"string","description":"The credit card payment type ID.","examples":["KnQ0KlNE6kf5mobyV0pN"],"enum":["KnQ0KlNE6kf5mobyV0pN"]},{"title":"ALkMK9pqgzfvgrqjlMVL","type":"string","description":"The PayPal payment type ID.","enum":["ALkMK9pqgzfvgrqjlMVL"],"examples":["ALkMK9pqgzfvgrqjlMVL"]},{"title":"1rdzjX2rrkcNjPXMEvOm","type":"string","description":"The offline payment type ID.","enum":["1rdzjX2rrkcNjPXMEvOm"],"examples":["1rdzjX2rrkcNjPXMEvOm"]},{"title":"vEZoAZrZL4S6WG4Ryzo1","type":"string","description":"The check payment type ID.","enum":["vEZoAZrZL4S6WG4Ryzo1"],"examples":["vEZoAZrZL4S6WG4Ryzo1"]}],"description":"The id associated with this resource."},"name":{"oneOf":[{"title":"Credit Card","type":"string","description":"The credit card payment type name.","examples":["Credit Card"],"enum":["Credit Card"]},{"title":"PayPal","type":"string","description":"The PayPal payment type name.","enum":["PayPal"],"examples":["PayPal"]},{"title":"Offline Payment","type":"string","description":"The offline payment type name.","enum":["Offline Payment"],"examples":["Offline Payment"]},{"title":"Check","type":"string","description":"The check payment type name.","enum":["Check"],"examples":["Check"]}],"description":"The name associated with this resource."}}},"third_party_shop":{"description":"Associated shop summary, omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the associated shop.","type":"string","examples":["My Store"]}},"type":"object"},"updated_date_unix":{"description":"When the fraud detection was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"A 20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"A 20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"A 20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"A 20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"A 20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount":{"description":"Amount in major currency units of iso_currency, rounded to two decimal places. Omitted when unavailable. Do not infer the currency when iso_currency is omitted.","type":"number","examples":[0]},"ip_address":{"description":"The IP address associated with the detected event.","type":"string","examples":["192.0.2.10"]},"is_sentinel":{"description":"Whether RevCent Sentinel generated the fraud detection.","type":"boolean"},"reason":{"description":"Explanation of the fraud detection, omitted when unavailable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"status":{"description":"Reported fraud-detection status, such as Fraud Detected or False Positive. Other status text may be returned. These display values differ from the status_filter query values.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"A fraud detection summary. Optional fields and related resource summaries are omitted when unavailable."},"type":"array","maxItems":25,"description":"Up to the requested limit of available fraud detections, newest first. May be empty."},"total_count":{"description":"Total fraud detections matching the applied filters. When customer_id is supplied, the required date range does not restrict this total.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Total pages for the requested limit; 0 when no detections match. May exceed the highest requestable page, 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false,"title":"GetFraudDetectionsSuccessResponse"}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Fraud Detection","description":"Create a single fraud detection using an existing source ID.","operationId":"CreateFraudDetection","x-api-permission-description":"Allows the creation of fraud detections.","x-api-permission":"fraud_detection:create","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/CreateFraudDetection.md","tags":["Sentinel Anti-Fraud"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"source_id":{"type":"string","description":"A fraud detection must have an originating RevCent API call, which RevCent will find when you provide a value for source_id. The value for the source_id property can be the ID for the originating API call, sale, transaction, PayPal transaction, check or offline payment.","minLength":20,"maxLength":20,"examples":["2rnYMVFGraRJBnPpgvQV"]},"void_sale":{"type":"boolean","description":"You can choose to automatically void the sale, by setting to true, if source_id is a RevCent sale ID. Default is false. Note: This will fully refund all entities of the sale and cannot be undone.","examples":[false]},"flag_similar_sale":{"type":"boolean","description":"You can choose to have RevCent add fraud alerts to similar sales. Default is false.","examples":[false]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"event_date":{"description":"The date when the fraud occurred in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"fraud_detection_date":{"description":"The date when the fraud was detected in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"third_party_integration_id":{"type":"string","description":"A 20 character third party integration ID, if applicable.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"third_party_fraud_detection_id":{"type":"string","description":"The third party integration fraud detection ID, if being created by a third party fraud detection service.","examples":["fraud_0001"]},"third_party_order_id":{"type":"string","description":"The third party integration order ID, if being created by a third party fraud detection service.","examples":["order_0001"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["source_id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"fraud_detection_id":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"result":{"type":"string","examples":["Fraud detection created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fraud_detections/{fraud_detection_id}":{"get":{"summary":"Get A Fraud Detection","description":"Retrieve a fraud detection by its ID, including available customer, payment and related-resource summaries. No query parameters are supported.","operationId":"GetFraudDetection","x-api-permission-description":"Allows the retrieval of fraud detections.","x-api-permission":"fraud_detection:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/GetFraudDetection.md","tags":["Sentinel Anti-Fraud"],"parameters":[{"in":"path","name":"fraud_detection_id","description":"20 character RevCent ID of the fraud detection to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested fraud detection. Optional fields and related resource summaries are omitted when unavailable.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"When the fraud detection was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the fraud detection. Matches the requested fraud_detection_id.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"campaign_id":{"description":"20 character RevCent ID of the associated campaign. Returned together with campaign_name; both are omitted when unavailable.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Name of the associated campaign, returned together with campaign_id.","examples":["AdWords Campaign"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"customer":{"type":"object","description":"Associated customer summary, omitted when unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country as a three-letter ISO 3166-1 alpha-3 (ISO 3) country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text. Historical values may not be valid email addresses; omitted when unavailable or empty.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for this customer, when supplied.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name, from 1 to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Metadata value, from 1 to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"When the customer was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"event_date":{"description":"When the fraud event occurred, in ISO 8601 format; omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"event_date_unix":{"description":"When the fraud event occurred, as a Unix timestamp in seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"false_positive":{"type":"boolean","description":"Whether this detection has been marked as not actually fraudulent.","examples":[false]},"fraud_detection_date":{"description":"When fraud was detected, in ISO 8601 format; omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"fraud_detection_date_unix":{"description":"When fraud was detected, as a Unix timestamp in seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"is_third_party_integration":{"type":"boolean","description":"Whether this detection originated from a third-party integration.","examples":[true]},"third_party_integration":{"title":"Third Party Integration","type":"object","additionalProperties":false,"description":"Associated integration account and provider, omitted when unavailable.","properties":{"id":{"description":"20 character RevCent ID of the integration account.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"User Integration Name","type":"string","description":"Your name for the integration account.","examples":["My SEON Account"]},"third_party":{"type":"object","description":"Provider associated with the integration account.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the integration provider.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"title":"Site Third Party Integration Name","type":"string","description":"Name of the integration provider.","examples":["SEON"]}}}}},"third_party_fraud_detection_id":{"type":"string","description":"Fraud detection reference assigned by the third-party service, when available.","examples":["third_party_id123"]},"third_party_order_id":{"type":"string","description":"Order reference assigned by the third-party service, when available.","examples":["third_party_order_id4342"]},"iso_currency":{"description":"Three-letter ISO 4217 currency code; letter case may vary. USD is returned when no currency was supplied. Omitted when the currency is invalid; do not assume a currency when this field is omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether this fraud detection belongs to live mode (true) or test mode (false).","type":"boolean","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name, from 1 to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Metadata value, from 1 to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 metadata name/value pairs.","maxItems":50},"origin_api_call":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the associated API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":{"description":"The original API call type.","type":"string","examples":["sale"]},"method":{"description":"The original API call method.","type":"string","examples":["create"]}},"type":"object","description":"API call associated with the detected event, omitted when unavailable."},"payment_type":{"title":"Payment Type Object","type":"object","additionalProperties":false,"description":"Associated payment type, omitted when unavailable.","properties":{"id":{"oneOf":[{"title":"KnQ0KlNE6kf5mobyV0pN","type":"string","description":"The credit card payment type ID.","examples":["KnQ0KlNE6kf5mobyV0pN"],"enum":["KnQ0KlNE6kf5mobyV0pN"]},{"title":"ALkMK9pqgzfvgrqjlMVL","type":"string","description":"The PayPal payment type ID.","enum":["ALkMK9pqgzfvgrqjlMVL"],"examples":["ALkMK9pqgzfvgrqjlMVL"]},{"title":"1rdzjX2rrkcNjPXMEvOm","type":"string","description":"The offline payment type ID.","enum":["1rdzjX2rrkcNjPXMEvOm"],"examples":["1rdzjX2rrkcNjPXMEvOm"]},{"title":"vEZoAZrZL4S6WG4Ryzo1","type":"string","description":"The check payment type ID.","enum":["vEZoAZrZL4S6WG4Ryzo1"],"examples":["vEZoAZrZL4S6WG4Ryzo1"]}],"description":"The id associated with this resource."},"name":{"oneOf":[{"title":"Credit Card","type":"string","description":"The credit card payment type name.","examples":["Credit Card"],"enum":["Credit Card"]},{"title":"PayPal","type":"string","description":"The PayPal payment type name.","enum":["PayPal"],"examples":["PayPal"]},{"title":"Offline Payment","type":"string","description":"The offline payment type name.","enum":["Offline Payment"],"examples":["Offline Payment"]},{"title":"Check","type":"string","description":"The check payment type name.","enum":["Check"],"examples":["Check"]}],"description":"The name associated with this resource."}}},"third_party_shop":{"description":"Associated shop summary, omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the associated shop.","type":"string","examples":["My Store"]}},"type":"object"},"updated_date_unix":{"description":"When the fraud detection was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"A 20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"A 20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"A 20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"A 20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Compatibility array, currently empty. An empty array does not establish that no related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"A 20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related RevCent IDs, not necessarily a complete relationship history. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount":{"description":"Amount in major currency units of iso_currency, rounded to two decimal places. Omitted when unavailable. Do not infer the currency when iso_currency is omitted.","type":"number","examples":[0]},"ip_address":{"description":"The IP address associated with the detected event.","type":"string","examples":["192.0.2.10"]},"is_sentinel":{"description":"Whether RevCent Sentinel generated the fraud detection.","type":"boolean"},"reason":{"description":"Explanation of the fraud detection, omitted when unavailable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"status":{"description":"Reported fraud-detection status, such as Fraud Detected or False Positive. Other historical status text may be returned; omitted when unavailable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Fraud Detection","description":"Edit a specific fraud detection using the fraud detection ID.","operationId":"EditFraudDetection","x-api-permission-description":"Allows the editing of fraud detections.","x-api-permission":"fraud_detection:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/EditFraudDetection.md","tags":["Sentinel Anti-Fraud"],"parameters":[{"in":"path","name":"fraud_detection_id","description":"The fraud_detection ID","required":true,"schema":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"false_positive":{"type":"boolean","description":"Whether the fraud detection is incorrect. I.e. The related payment is not actually fraud.","examples":[true]},"arn":{"type":"string","description":"The acquirer reference number, if applicable.","examples":["23532"]},"event_date":{"description":"The date when the fraud occurred in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"fraud_detection_date":{"description":"The date when the fraud was detected in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"case_number":{"type":"string","description":"The case number, if applicable.","examples":["6642444224"]},"third_party_integration_id":{"type":["string","null"],"description":"The 20 character RevCent ID of a third-party integration in your account. Supply an ID to set or replace the association, null to remove it, or omit this field to preserve the current association. An empty string is not accepted.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"third_party_fraud_detection_id":{"type":"string","description":"The third party integration fraud detection ID, if being created by a third party fraud detection service.","examples":["fraud_0001"]},"third_party_order_id":{"type":"string","description":"The third party integration order ID, if being created by a third party fraud detection service.","examples":["order_0001"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"fraud_detection_id":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"result":{"type":"string","examples":["Fraud detection edited."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fraud_detections/search":{"get":{"summary":"Search Fraud Detections","description":"Search fraud detections using a term or phrase. Returns up to 10 matches ordered by relevance, without pagination or a guarantee of finding every match.","operationId":"SearchFraudDetections","x-api-permission-description":"Allows the search of fraud detections.","x-api-permission":"fraud_detection:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a fraud detection when you do not know the fraud detection ID and wish to retrieve the details of a specific fraud detection. Once a fraud detection has been found, use an individual search results' id property and the GetFraudDetection operation to retrieve the fraud detection details.<br><br>Important: If using the SearchFraudDetections and GetFraudDetection method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the fraud detection using a secondary non-provided value, such as the customer email in the GetFraudDetection response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchFraudDetections.md","tags":["Sentinel Anti-Fraud"],"parameters":[{"name":"search_term","description":"Search term or phrase. Leading and trailing whitespace is ignored; blank terms are rejected. If repeated, the final value is used. No other query parameters are supported.","in":"query","required":true,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"Searches the fraud-detection ID, customer first and last names, first address line, email, phone, metadata values, IP address, first six or last four card digits, and third-party fraud-detection ID. Card digits and third-party fraud-detection IDs are searchable but are not included in result fields or highlights."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"title":"SearchFraudDetectionsSuccessResponse","description":"Fraud-detection search matches and retrieval metadata.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this API call was initiated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval, not the outcome of a detected event.","type":"integer","format":"int32","enum":[1],"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 fraud-detection matches, ordered by relevance. May be empty and does not necessarily include all matches. Pagination is not supported.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Associated customer's first address line, when available. May be an empty string.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Associated customer's second address line, when available. May be an empty string.","examples":["West Wing"]},"city":{"type":"string","description":"Associated customer's city, when available. May be an empty string.","examples":["Washington"]},"created_date_unix":{"description":"When the fraud detection was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated customer; omitted when unavailable.","examples":["4r158EzJmmcVM69dNLkg"]},"email":{"type":"string","format":"email","description":"Customer email address; omitted when unavailable or invalid.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"Associated customer's first name, when available. May be an empty string.","examples":["George"]},"highlights":{"type":"array","description":"Available matching passages for the listed fields; omitted when no highlights are available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","ip_address","last_name","metadata","phone"],"description":"Public search field containing the highlighted passage.","examples":["last_name"]},"values":{"type":"array","description":"Text fragments that matched within the highlighted passage.","items":{"type":"string","examples":["Washington"],"description":"One matching text fragment."}},"score":{"type":"number","description":"Optional relevance score for this passage, distinct from the result score. Not limited to 0–1; omitted when unavailable or invalid.","examples":[0]},"full_text":{"type":"string","description":"Context for a matching metadata passage. Returned only when field is metadata; the passage may be absent from the limited metadata array in this result.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"20 character RevCent ID of the matching fraud detection. Use it with GetFraudDetection to request details.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"ip_address":{"type":"string","description":"IP address associated with the detected event, when available.","examples":["192.0.2.10"]},"item_type":{"type":"string","description":"Resource type of this result; always fraud_detection.","examples":["fraud_detection"],"enum":["fraud_detection"]},"last_name":{"type":"string","description":"Associated customer's last name, when available. May be an empty string.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 metadata name/value pairs associated with the detection. May be empty or omitted when unavailable.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name, from 1 to 100 characters.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value, from 1 to 255 characters.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"Associated customer's phone number, when available. May be an empty string.","examples":["1234567890"]},"score":{"type":"number","description":"Result relevance score; higher values indicate a closer match. Scores are not limited to 0–1. Defaults to 1 when no score was supplied; null or invalid values are omitted.","examples":[7.68]},"state":{"type":"string","description":"Associated customer's state or province, when available. May be an empty string.","examples":["DC"]},"url":{"type":"string","format":"uri","description":"Link to the RevCent details page for the fraud detection identified by id.","examples":["https://revcent.com/user/fraud-detection-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Associated customer's ZIP or postal code, when available. May be an empty string.","examples":["20500"]}},"description":"A fraud-detection search summary. Customer fields are optional and omitted when unavailable."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fulfillment_accounts":{"get":{"summary":"Get Fulfillment Accounts","description":"Retrieve a page of available fulfillment accounts, newest first. Use GetFulfillmentAccount to retrieve an individual account.","operationId":"GetFulfillmentAccounts","x-api-permission-description":"Allows the retrieval of fulfillment accounts.","x-api-permission":"fulfillment_account:retrieve","x-ai-options":["mcp"],"x-additional-info":"Only limit and page query parameters are supported, and both are required.","x-kb-link":"https://kb.revcent.com/en/integrations/fulfillment-account","x-kb-name":"Fulfillment Accounts","x-md-link":"markdown/mcp/operation/GetFulfillmentAccounts.md","tags":["Fulfillment"],"parameters":[{"description":"Maximum accounts per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of available fulfillment accounts and pagination totals.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of fulfillment accounts in this page of results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"Current page number, starting at 1. A request for page 0 returns page 1; the maximum requestable page is 20.","type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the fulfillment account.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"Your name for the fulfillment account. May be an empty string.","type":"string","examples":["My ShipStation"]},"description":{"description":"Description of the fulfillment account. Returns an empty string when unavailable.","type":"string","examples":["The ShipStation fulfillment for mystore.com shipments."]},"enabled":{"description":"Whether the fulfillment account is enabled. Returns false when the setting is unavailable or invalid.","type":"boolean","examples":[true]},"cancel_on_void":{"description":"Whether RevCent is configured to request shipment cancellation when the shipment is fully refunded or voided. This setting does not guarantee successful cancellation. Returns false when unavailable or invalid.","type":"boolean","examples":[true]},"fulfillment_center":{"type":"object","additionalProperties":false,"description":"Associated fulfillment provider summary, omitted when unavailable or invalid.","properties":{"id":{"description":"20 character RevCent ID of the fulfillment provider.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"Name of the fulfillment provider. May be an empty string.","type":"string","examples":["ShipStation"]}}},"fulfillment_center_fields_saved":{"description":"Whether fulfillment-center configuration has been saved. This does not verify completeness, validity or connection success. Use EditFulfillmentAccount to update the configuration.","type":"boolean","examples":[true]},"created_date_unix":{"description":"When the fulfillment account was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"When the fulfillment account was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to the requested limit of fulfillment accounts, newest first. May be empty."},"total_count":{"minimum":0,"description":"Total available fulfillment accounts, across all pages.","type":"integer","examples":[28]},"total_pages":{"minimum":0,"description":"Total pages for the requested limit; 0 when no accounts are available. May exceed 20 even though the maximum requestable page is 20.","type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Fulfillment Account","description":"Create a Fulfillment Account, which will issue a unique Fulfillment Account ID.","operationId":"CreateFulfillmentAccount","x-api-permission-description":"Allows the creation of fulfillment accounts.","x-api-permission":"fulfillment_account:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/fulfillment-account","x-kb-name":"Fulfillment Accounts","x-md-link":"markdown/mcp/operation/CreateFulfillmentAccount.md","tags":["Fulfillment"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Fulfillment Account name. Must be unique from other Fulfillment Account names.","examples":["Example"]},"description":{"type":"string","description":"The Fulfillment Account description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Fulfillment Account is enabled."},"fulfillment_center":{"type":"string","description":"A 20 character RevCent ID for the site fulfillment center. Use GetSiteFulfillmentCenters to find available centers.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"type":"array","description":"Complete set of credential fields required by the selected fulfillment center. Retrieve required_fields with GetSiteFulfillmentCenter and supply each required field ID exactly once with a nonempty value; no other IDs are accepted. Use either fields or a completed secure_form_id. If both are supplied, the secure form takes precedence.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the field based on the id from the required_fields for the site fulfillment center.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"type":"string","description":"The credential value for this required field.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]},"minItems":1},"secure_form_id":{"type":"string","description":"A 20 character RevCent ID for a completed secure form for the selected fulfillment center. Create it with CreateSecureForm and have the user complete form_url before using this ID. Required if direct fields are omitted. Takes precedence if both sources are supplied.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","fulfillment_center"],"type":"object","anyOf":[{"required":["fields"]},{"required":["secure_form_id"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"fulfillment_account_id":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fulfillment_accounts/{fulfillment_account_id}":{"get":{"summary":"Get A Fulfillment Account","description":"Retrieve a fulfillment account by its ID, including its available fulfillment provider summary. No query parameters are supported.","operationId":"GetFulfillmentAccount","x-api-permission-description":"Allows the retrieval of fulfillment accounts.","x-api-permission":"fulfillment_account:retrieve","x-ai-options":["mcp"],"x-additional-info":"","x-kb-link":"https://kb.revcent.com/en/integrations/fulfillment-account","x-kb-name":"Fulfillment Accounts","x-md-link":"markdown/mcp/operation/GetFulfillmentAccount.md","tags":["Fulfillment"],"parameters":[{"in":"path","name":"fulfillment_account_id","description":"20 character RevCent ID of the fulfillment account to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested fulfillment account, including its available fulfillment provider summary.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","examples":[1],"enum":[1]},"id":{"description":"20 character RevCent ID of the fulfillment account. Matches the requested fulfillment_account_id.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"Your name for the fulfillment account. May be an empty string.","type":"string","examples":["My ShipStation"]},"description":{"description":"Description of the fulfillment account. May be empty; returns an empty string when unavailable or invalid.","type":"string","examples":["The ShipStation fulfillment for mystore.com shipments."]},"enabled":{"description":"Whether the fulfillment account is enabled. Returns false when the setting is unavailable or invalid.","type":"boolean","examples":[true]},"cancel_on_void":{"description":"Whether RevCent is configured to request shipment cancellation when the shipment is fully refunded or voided. This setting does not guarantee successful cancellation. Returns false when unavailable or invalid.","type":"boolean","examples":[true]},"fulfillment_center":{"type":"object","additionalProperties":false,"description":"Associated fulfillment provider summary, omitted when unavailable or invalid.","properties":{"id":{"description":"20 character RevCent ID of the fulfillment provider.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"Name of the fulfillment provider. May be an empty string.","type":"string","examples":["ShipStation"]}}},"fulfillment_center_fields_saved":{"description":"Whether fulfillment-center configuration has been saved. This does not verify completeness, validity or connection success. Use EditFulfillmentAccount to update the configuration.","type":"boolean","examples":[true]},"created_date_unix":{"description":"When the fulfillment account was created, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"When the fulfillment account was last updated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Fulfillment Account","description":"Edit a previously created Fulfillment Account using the Fulfillment Account ID. Only supplied fields are updated.","operationId":"EditFulfillmentAccount","x-api-permission-description":"Allows the editing of fulfillment accounts.","x-api-permission":"fulfillment_account:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/fulfillment-account","x-kb-name":"Fulfillment Accounts","x-md-link":"markdown/mcp/operation/EditFulfillmentAccount.md","tags":["Fulfillment"],"parameters":[{"in":"path","name":"fulfillment_account_id","description":"The Fulfillment Account ID","required":true,"schema":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Fulfillment Account name. Must be unique from other Fulfillment Account names.","examples":["Example"]},"description":{"type":"string","description":"The Fulfillment Account description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Fulfillment Account is enabled."},"fulfillment_center":{"type":"string","description":"A 20 character RevCent ID for the site fulfillment center. Use GetSiteFulfillmentCenters to find available centers. When changing to a different center, also supply its complete credentials through fields or a completed secure_form_id. Keeping the same center does not require replacing credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"type":"array","description":"Complete set of credential fields required by the selected fulfillment center. Retrieve required_fields with GetSiteFulfillmentCenter and supply each required field ID exactly once with a nonempty value; no other IDs are accepted. Use either fields or a completed secure_form_id. If both are supplied, the secure form takes precedence.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the field based on the id from the required_fields for the site fulfillment center.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"type":"string","description":"The credential value for this required field.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]},"minItems":1},"secure_form_id":{"type":"string","description":"A 20 character RevCent ID for a completed secure form for the selected fulfillment center. Create it with CreateSecureForm and have the user complete form_url before using this ID. Use to replace credentials or when changing fulfillment centers. Omit both credential sources to keep the current credentials when the center is unchanged.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"fulfillment_account_id":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/fulfillment_accounts/{fulfillment_account_id}/delete":{"post":{"summary":"Delete A Fulfillment Account","description":"Delete a specific fulfillment account using the fulfillment account ID and delete path.","operationId":"DeleteFulfillmentAccount","x-api-permission-description":"Allows the deletion of fulfillment accounts.","x-api-permission":"fulfillment_account:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteFulfillmentAccount.md","tags":["Fulfillment"],"parameters":[{"in":"path","name":"fulfillment_account_id","description":"The Fulfillment Account ID","required":true,"schema":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"fulfillment_account_id":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"result":{"type":"string","examples":["Fulfillment account deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/functions":{"get":{"summary":"Get Functions","description":"Returns Functions and their trigger settings, newest first. Use GetFunction to retrieve the code for an individual Function.","operationId":"GetFunctions","x-api-permission-description":"Allows the retrieval of functions.","x-api-permission":"function:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/GetFunctions.md","tags":["Functions"],"parameters":[{"description":"Maximum Functions per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of Functions and pagination totals. Function code is available through GetFunction.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of Functions in this page of results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with 0 returned as 1. The maximum requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Function's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the Function.","examples":["Q4vj0drE55FJb1XNmgL4"],"type":"string","title":"Function ID","minLength":20,"maxLength":20},"name":{"description":"Name of the Function. May be an empty string.","type":"string","examples":["My Custom Function"]},"description":{"description":"Description of the Function. Returns an empty string when unavailable.","type":"string","examples":["Runs code to notify a custom endpoint."]},"enabled":{"description":"Whether the Function is enabled. This setting does not establish deployment readiness or guarantee successful execution.","type":"boolean","examples":[true]},"status":{"type":"string","description":"The deployment status of the Function. This status is used to track deployment progress when a Function is first created or when its dependencies are updated. Dependency changes trigger a redeployment; other changes made through EditFunction, such as trigger settings or function code, do not. A Function must be in the READY state before it can be updated with EditFunction. After creating a Function or updating its dependencies, it may take up to 5 minutes for the Function to become READY. Long polling is recommended when checking deployment status.<br><br>Options:<br>READY: The Function is ready and can be updated.<br>CREATING: The Function is being created. It cannot be updated or triggered yet.<br>CREATE_FAILED: Function creation failed. The Function cannot be updated or triggered. Contact support if creation failed.<br>UPDATING: The Function is being redeployed with updated dependencies. It cannot be updated until the deployment completes, but it can still be triggered.<br>UPDATE_FAILED: The dependency update failed. The Function can still be triggered. Retry the update after checking for invalid dependencies or other deployment errors.<br>UNKNOWN: Deployment status is unavailable or unrecognized; readiness cannot be determined from this value.","enum":["READY","CREATING","CREATE_FAILED","UPDATING","UPDATE_FAILED","UNKNOWN"],"examples":["READY"]},"event_source":{"description":"The saved trigger setting. Recognized values include account_event, schedule, function_url, webhook, api_direct, email_template and payment_profile. Other historical strings may be returned; empty when unavailable. Account events and schedules trigger automatically. A Function URL supports HTTP GET or POST with a Function-defined response; a webhook supports HTTP POST notifications with an empty response. API/AI triggers include TriggerFunction, AI System Tools, Filter Functions and Pre-Agent functions. Email Template Functions provide custom template data; Payment Profile Functions run during payment-profile processing.","type":"string","examples":["account_event","api_direct","email_template","payment_profile","function_url","schedule","webhook"]},"account_event_notations":{"type":"array","description":"Configured account-event notations that trigger the Function when event_source is account_event. May include historical or empty values and may be an empty list.","items":{"type":"string","description":"An account-event notation, such as sale.created.success.paid or customer.created. See https://kb.revcent.com/en/revcent-account/events for notation formatting and event data. Historical values may be returned.","examples":["sale.created.success.paid"]}},"account_event_filters":{"type":"object","additionalProperties":false,"description":"Account-event filter settings for account_event Functions. Only available associated campaigns are included; an empty list does not establish that no campaign restriction was configured.","properties":{"campaign_filter":{"description":"Available campaign IDs for the configured account-event campaign filter. May be empty.","type":"array","items":{"type":"string","description":"20 character RevCent ID of a campaign included in the event filter.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}}}},"dependencies":{"description":"The Function's saved dependency names and versions. May be empty. To use dependencies in function code, use require() outside exports.handler; ESM import syntax is not supported.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the dependency.","type":"string","examples":["axios"]},"version":{"description":"The saved dependency version text.","type":"string","examples":["^0.27.2"]}}}},"environment_variables":{"description":"Available environment-variable settings. Function code accesses these using process.env[\"<env_variable_name>\"]. Encrypted values are returned as \"********\" (eight asterisks); unencrypted values remain available. May be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the environment variable, which would be accessed within the function code using the 'process.env[\"<env_variable_name>\"]' syntax.","type":"string","examples":["API_KEY"]},"value":{"description":"The unencrypted value, or \"********\" (eight asterisks) when encrypted. The placeholder is not the secret value.","type":"string","examples":["********"]},"encrypted":{"description":"Whether the value is encrypted. Encrypted values are represented by the redaction placeholder.","type":"boolean","examples":[true]}}}},"function_url":{"description":"The Function's HTTP GET/POST trigger URL, returned only for event_source=function_url when a valid URL is available. Omitted when unavailable or malformed.","type":"string","format":"uri","examples":["https://functions.revcent.com/97d4f9d7-77d7-1c4"]},"webhook_url":{"description":"The Function's HTTP POST webhook trigger URL, returned only for event_source=webhook when a valid URL is available. Omitted when unavailable or malformed.","type":"string","format":"uri","examples":["https://webhook.revcent.com/f9d99dj0s-4828-332"]},"ip_restricted":{"description":"Whether IP restrictions are enabled for Function URL triggers.","type":"boolean","examples":[false]},"ip_whitelist":{"description":"Saved IP allowlist strings for Function URL triggers. May be empty; historical strings are returned without guaranteeing current validity.","type":"array","items":{"type":"string","description":"A saved IP allowlist entry; may contain historical text or be empty.","examples":["192.168.1.1"]}},"timing_options":{"type":"object","additionalProperties":false,"description":"Timing settings for account-event triggers. Immediate timing is represented by time_value 0 and time_unit minutes.","properties":{"timing":{"description":"The returned timing setting: immediate or delay.","type":"string","enum":["immediate","delay"],"examples":["immediate","delay"]},"time_unit":{"description":"Unit for the delay: minutes or hours. Immediate timing uses minutes.","type":"string","enum":["minutes","hours"],"examples":["minutes","hours"]},"time_value":{"description":"Nonnegative delay in time_unit. Returns 0 for immediate timing or when no delay value is available.","type":"integer","minimum":0,"examples":[2]}}},"cron_expression":{"type":"string","description":"The saved schedule expression, applicable to schedule Functions. Empty when unavailable. Historical text is preserved without guaranteeing a currently valid cron expression.","examples":["0 9 * * *"]},"cron_timezone":{"type":"string","description":"Configured timezone for schedule Functions. May be empty or contain a historical value; an empty response does not supply a UTC default.","examples":["America/New_York"]},"custom_arguments":{"description":"Custom-argument definitions, included when available regardless of event_source. For TriggerFunction, supply argument values as name/value objects in custom_arguments. AI can use each description to infer the appropriate value.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the custom argument, which should be the name within the custom_arguments array object when triggering a Function using the TriggerFunction operation.","type":"string","examples":["campaign_id"]},"description":{"description":"The description of the custom argument determines what the inferred value should be when triggering the function.","type":"string","examples":["Parse the campaign ID from the sale item details."]}}}},"updated_date_unix":{"description":"The Function's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to limit Functions for the requested page. May be empty."},"total_count":{"description":"Total number of available Functions.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though page requests cannot exceed 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Function","description":"Create a Function, which will issue a unique Function ID. RevCent will provision a unique instance to handle the function's code execution securely in a sandboxed environment.<br><br>After creating a Function, you can then edit the Function configuration, including the function code and dependencies, using the EditFunction operation with the newly created Function ID.","operationId":"CreateFunction","x-api-permission-description":"Allows the creation of functions.","x-api-permission":"function:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/CreateFunction.md","tags":["Functions"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Function name. Must be unique from other Function names.","examples":["My Function"]},"description":{"type":"string","description":"The Function description.","examples":["This is my Function."]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"function_id":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"result":{"type":"string","examples":["Function created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/functions/{function_id}":{"get":{"summary":"Get A Function","description":"Returns the details, trigger settings and available JavaScript code of a Function.","operationId":"GetFunction","x-api-permission-description":"Allows the retrieval of functions.","x-api-permission":"function:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/GetFunction.md","tags":["Functions"],"parameters":[{"in":"path","name":"function_id","description":"20 character RevCent ID of the Function to retrieve.","required":true,"schema":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of a Function, including available code and trigger settings.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The Function's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the Function.","examples":["Q4vj0drE55FJb1XNmgL4"],"type":"string","title":"Function ID","minLength":20,"maxLength":20},"name":{"description":"Name of the Function. May be an empty string.","type":"string","examples":["My Custom Function"]},"description":{"description":"Description of the Function. Returns an empty string when unavailable.","type":"string","examples":["Runs code to notify a custom endpoint."]},"enabled":{"description":"Whether the Function is enabled. This setting does not establish deployment readiness or guarantee successful execution.","type":"boolean","examples":[true]},"status":{"type":"string","description":"The deployment status of the Function. This status is used to track deployment progress when a Function is first created or when its dependencies are updated. Dependency changes trigger a redeployment; other changes made through EditFunction, such as trigger settings or function code, do not. A Function must be in the READY state before it can be updated with EditFunction. After creating a Function or updating its dependencies, it may take up to 5 minutes for the Function to become READY. Long polling is recommended when checking deployment status.<br><br>Options:<br>READY: The Function is ready and can be updated.<br>CREATING: The Function is being created. It cannot be updated or triggered yet.<br>CREATE_FAILED: Function creation failed. The Function cannot be updated or triggered. Contact support if creation failed.<br>UPDATING: The Function is being redeployed with updated dependencies. It cannot be updated until the deployment completes, but it can still be triggered.<br>UPDATE_FAILED: The dependency update failed. The Function can still be triggered. Retry the update after checking for invalid dependencies or other deployment errors.<br>UNKNOWN: Deployment status is unavailable or unrecognized; readiness cannot be determined from this value.","enum":["READY","CREATING","CREATE_FAILED","UPDATING","UPDATE_FAILED","UNKNOWN"],"examples":["READY"]},"function_code":{"description":"JavaScript code of the Function. Omitted when unavailable or empty.","type":"string","examples":["exports.handler = async function(event, context) {\nreturn { response: 'Hello World' };\n}"]},"event_source":{"description":"The saved trigger setting. Recognized values include account_event, schedule, function_url, webhook, api_direct, email_template and payment_profile. Other historical strings may be returned; empty when unavailable. Account events and schedules trigger automatically. A Function URL supports HTTP GET or POST with a Function-defined response; a webhook supports HTTP POST notifications with an empty response. API/AI triggers include TriggerFunction, AI System Tools, Filter Functions and Pre-Agent functions. Email Template Functions provide custom template data; Payment Profile Functions run during payment-profile processing.","type":"string","examples":["account_event","api_direct","email_template","payment_profile","function_url","schedule","webhook"]},"account_event_notations":{"type":"array","description":"Configured account-event notations that trigger the Function when event_source is account_event. May include historical or empty values and may be an empty list.","items":{"type":"string","description":"An account-event notation, such as sale.created.success.paid or customer.created. See https://kb.revcent.com/en/revcent-account/events for notation formatting and event data. Historical values may be returned.","examples":["sale.created.success.paid"]}},"account_event_filters":{"type":"object","additionalProperties":false,"description":"Account-event filter settings for account_event Functions. Only available associated campaigns are included; an empty list does not establish that no campaign restriction was configured.","properties":{"campaign_filter":{"description":"Available campaign IDs for the configured account-event campaign filter. May be empty.","type":"array","items":{"type":"string","description":"20 character RevCent ID of a campaign included in the event filter.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}}}},"dependencies":{"description":"The Function's saved dependency names and versions. May be empty. To use dependencies in function code, use require() outside exports.handler; ESM import syntax is not supported.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the dependency.","type":"string","examples":["axios"]},"version":{"description":"The saved dependency version text.","type":"string","examples":["^0.27.2"]}}}},"environment_variables":{"description":"Available environment-variable settings. Function code accesses these using process.env[\"<env_variable_name>\"]. Encrypted values are returned as \"********\" (eight asterisks); unencrypted values remain available. May be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the environment variable, which would be accessed within the function code using the 'process.env[\"<env_variable_name>\"]' syntax.","type":"string","examples":["API_KEY"]},"value":{"description":"The unencrypted value, or \"********\" (eight asterisks) when encrypted. The placeholder is not the secret value.","type":"string","examples":["********"]},"encrypted":{"description":"Whether the value is encrypted. Encrypted values are represented by the redaction placeholder.","type":"boolean","examples":[true]}}}},"function_url":{"description":"The Function's HTTP GET/POST trigger URL, returned only for event_source=function_url when a valid URL is available. Omitted when unavailable or malformed.","type":"string","format":"uri","examples":["https://functions.revcent.com/97d4f9d7-77d7-1c4"]},"webhook_url":{"description":"The Function's HTTP POST webhook trigger URL, returned only for event_source=webhook when a valid URL is available. Omitted when unavailable or malformed.","type":"string","format":"uri","examples":["https://webhook.revcent.com/f9d99dj0s-4828-332"]},"ip_restricted":{"description":"Whether IP restrictions are enabled for Function URL triggers.","type":"boolean","examples":[false]},"ip_whitelist":{"description":"Saved IP allowlist strings for Function URL triggers. May be empty; historical strings are returned without guaranteeing current validity.","type":"array","items":{"type":"string","description":"A saved IP allowlist entry; may contain historical text or be empty.","examples":["192.168.1.1"]}},"timing_options":{"type":"object","additionalProperties":false,"description":"Timing settings for account-event triggers. Immediate timing is represented by time_value 0 and time_unit minutes.","properties":{"timing":{"description":"The returned timing setting: immediate or delay.","type":"string","enum":["immediate","delay"],"examples":["immediate","delay"]},"time_unit":{"description":"Unit for the delay: minutes or hours. Immediate timing uses minutes.","type":"string","enum":["minutes","hours"],"examples":["minutes","hours"]},"time_value":{"description":"Nonnegative delay in time_unit. Returns 0 for immediate timing or when no delay value is available.","type":"integer","minimum":0,"examples":[2]}}},"cron_expression":{"type":"string","description":"The saved schedule expression, applicable to schedule Functions. Empty when unavailable. Historical text is preserved without guaranteeing a currently valid cron expression.","examples":["0 9 * * *"]},"cron_timezone":{"type":"string","description":"Configured timezone for schedule Functions. May be empty or contain a historical value; an empty response does not supply a UTC default.","examples":["America/New_York"]},"custom_arguments":{"description":"Custom-argument definitions, included when available regardless of event_source. For TriggerFunction, supply argument values as name/value objects in custom_arguments. AI can use each description to infer the appropriate value.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the custom argument, which should be the name within the custom_arguments array object when triggering a Function using the TriggerFunction operation.","type":"string","examples":["campaign_id"]},"description":{"description":"The description of the custom argument determines what the inferred value should be when triggering the function.","type":"string","examples":["Parse the campaign ID from the sale item details."]}}}},"updated_date_unix":{"description":"The Function's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Function","description":"Edit a previously created Function using the Function ID. Only supplied fields are updated.","operationId":"EditFunction","x-api-permission-description":"Allows the edit of the function, including the function code.","x-api-permission":"function:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/EditFunction.md","tags":["Functions"],"parameters":[{"in":"path","name":"function_id","description":"The Function ID","required":true,"schema":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Function name. Must be unique from other Function names.","examples":["Example"]},"description":{"type":"string","description":"The Function description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Function is enabled."},"function_code":{"description":"The JavaScript code of the Function.<br><br>Please read more about the execution handler which is required within the code at <a href=\"https://kb.revcent.com/en/integrations/functions#execution-handler\" target=\"_blank\">https://kb.revcent.com/en/integrations/functions#execution-handler</a>.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"event_source":{"description":"The event source setting determines how the Function will be triggered, a.k.a. code executed.<br><br>Trigger Options:<br>Account Event: Function is triggered by RevCent automatically when a specific event occurs.<br>Schedule: Function is triggered by RevCent on a fixed schedule using a cron expression.<br>URL: Trigger the function using a HTTP GET or POST request with a response determined by the function. Useful for performing immediate operations or requesting data.<br>Webhook: Send a notification to the function with an empty response using a HTTP POST request. Useful for allowing third parties to post data.<br>API/AI: Trigger the function using the RevCent API, as an AI System Tool, as a Filter Function or as a Pre-Agent function.<br>Email Template: Generate custom data for an Email Template<br>Payment Profile: Run a function during the processing of a Next-Gen payment profile.","type":"string","enum":["account_event","api_direct","email_template","payment_profile","function_url","schedule","webhook"],"examples":["account_event"]},"account_event_notations":{"type":"array","description":"If the event_source is set to 'account_event', you can specify one or more account event notations to trigger the function when those specific account events occur. An account event notation is a string that represents a specific account event. When the specified account event(s) occur, the system will trigger the function to run the associated code.","items":{"type":"string","description":"The notation for the account event trigger. Read more at https://kb.revcent.com/en/revcent-account/events to understand notation formatting and their associated event data.","examples":["sale.created.success.paid"],"enum":["ai_memo.created","chargeback.created","check_direct.created","customer.created","customer.updated.add_card","customer.updated.address","customer.updated.customer_group","customer.updated.customer_group.added","customer.updated.customer_group.removed","customer.updated.disabled","customer.updated.enabled","discount.created","fraud_detection.created","fraud_detection.updated.false_positive","note.created","offline_payment.created","paypal_dispute.created","paypal_transaction.created","pending_refund.created","pending_refund.created.product_sale","pending_refund.created.product_sale.full","pending_refund.created.product_sale.partial","pending_refund.created.shipping","pending_refund.created.shipping.full","pending_refund.created.shipping.full.has_fulfillment","pending_refund.created.shipping.full.no_fulfillment","pending_refund.created.shipping.has_fulfillment","pending_refund.created.shipping.no_fulfillment","pending_refund.created.shipping.partial","pending_refund.created.shipping.partial.has_fulfillment","pending_refund.created.shipping.partial.no_fulfillment","pending_refund.created.subscription_renewal","pending_refund.created.subscription_renewal.full","pending_refund.created.subscription_renewal.partial","pending_refund.created.tax","pending_refund.created.tax.full","pending_refund.created.tax.partial","product.created","product.deleted","product.updated","product_sale.created","sale.created","sale.created.failed","sale.created.failed.declined","sale.created.failed.error","sale.created.failed.no_gateway","sale.created.failed.fraud_detected","sale.created.failed.merchant_error","sale.created.failed.merchant_hold","sale.created.success","sale.created.success.has_salvage","sale.created.success.is_upsell","sale.created.success.paid","sale.created.success.paid.has_salvage","sale.created.success.paid.is_upsell","sale.created.success.pending","sale.created.success.pending.is_upsell","sale.updated.fraud_alert.added","sale.updated.fraud_alert.removed","salvage_transaction.created","salvage_transaction.updated.processed","salvage_transaction.updated.processed.failed","salvage_transaction.updated.processed.success","sentinel.alert","sentinel.alert.fraud_detected","sentinel.alert.firewall_block","shipping.created","shipping.created.has_fulfillment","shipping.created.no_fulfillment","shipping.updated.delivered","shipping.updated.ship_to","shipping.updated.shipped","subscription.created","subscription.updated.renewed","subscription.updated.renewed.failed","subscription.updated.renewed.success","subscription.updated.status","subscription.updated.status.active","subscription.updated.status.cancelled","subscription.updated.status.occurrence_limit","subscription.updated.status.overdue","subscription.updated.status.suspended","subscription_renewal.updated.failed","subscription_renewal.updated.success","tax.created","transaction.created","trial.created","trial.updated.cancelled","trial.updated.expired","trial.updated.expired.failed","trial.updated.expired.success","trial.updated.extended","trial.updated.shortened"]}},"account_event_filters":{"type":"object","additionalProperties":false,"description":"Campaign filters for account-event triggers. When this object is supplied, include campaign_filter as an array. Omit account_event_filters to preserve the current filters.","properties":{"campaign_filter":{"description":"Replacement list of campaign IDs for account-event triggers. An empty array clears the campaign filter.","type":"array","items":{"type":"string","description":"A 20 character campaign ID to filter for.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"required":["campaign_filter"]},"timing_options":{"type":"object","additionalProperties":false,"description":"Timing options determine when the function runs after being triggered. If not provided, the function will run immediately after being triggered. Only applies to functions with an event_source set to 'account_event'.","properties":{"timing":{"description":"The timing setting determines when the function runs after being triggered. Default is immediate. If set to 'delay', the function will run after the specified delay time has passed.","type":"string","enum":["immediate","delay"],"examples":["immediate"]},"time_unit":{"description":"The time unit for the delay. This is required if timing is set to 'delay'.","type":"string","enum":["minutes","hours"],"examples":["minutes"]},"time_value":{"description":"The delay value, paired with time_unit. Must be a whole number of at least 5 when supplied. Applies to account-event timing.","type":"integer","minimum":5,"examples":[5]}}},"cron_expression":{"type":"string","description":"The cron expression that determines when the function will be triggered. Applies only to functions with an event source set to 'schedule'. The cron expression must be a valid 5 part cron expression.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"cron_timezone":{"type":"string","description":"The timezone for the cron expression. Applies only to functions with an event source set to 'schedule'. If not provided, UTC will be used. The timezone must be a valid IANA timezone string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"dependencies":{"description":"A list of dependencies which will be installed and deployed for the Function.<br><br>To use dependencies in function code, use require() outside of the function exports.handler. Do not use ESM import syntax, as it is not supported and will cause errors.<br><br>Note: When modifying dependencies it may take up to 5 minutes for the dependencies to properly update in the functions provisioned environment.<br><br>Important: If providing the dependencies object, any existing dependencies will be replaced with those submitted. To ensure any previous dependencies are preserved, please use the GetFunction operation and include existing dependencies as well.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the dependency.","type":"string","minLength":1,"examples":["Example"]},"version":{"description":"The version of the dependency. Please ensure that the version exists and is valid to prevent errors when provisioning the function.","type":"string","minLength":1,"examples":["EC_v1"]}},"required":["name","version"]},"maxItems":50},"environment_variables":{"description":"A list of environment variables that are available to the Function when it is triggered. Environment variables are accessed within the function code using the 'process.env[\"<env_variable_name>\"]' syntax. When a function is triggered, encrypted environment variables are decrypted and provided to the function, but when retrieving function details via the API, encrypted environment variable values are hidden and not provided. This allows you to have sensitive information such as API keys stored as encrypted environment variables, which can be used by the function when triggered, but are not exposed when retrieving function details.<br><br>Important: When editing a function, if you include the environment_variables property in the request body, RevCent will only upsert environment variables, i.e. existing environment variables will be left intact, new ones will be added/encrypted, and any matching environment variable names will have their value replaced. Providing the environment variables array will not overwrite all existing environment variables for the function. Only include the environment_variables property if you wish to add new environment variables or update existing ones.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the environment variable, which would be accessed within the function code using the 'process.env[\"<env_variable_name>\"]' syntax.","type":"string","examples":["Example"]},"value":{"description":"The value of the environment variable.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"ip_restricted":{"description":"Whether the function is IP restricted. If true, only requests originating from allowed IP addresses will be able to trigger the function. This only applies to functions with the event_source set to 'function_url' or 'webhook'.","type":"boolean"},"ip_whitelist":{"description":"If the function is IP restricted, the IP whitelist is the list of allowed IPv4 addresses that can trigger the function. Each entry should be a valid IPv4 IP address. Ranges are not supported. This only applies to functions with the event_source set to 'function_url' or 'webhook'.","type":"array","items":{"type":"string","description":"A valid IPv4 address.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"custom_arguments":{"description":"A list of custom arguments which should be provided as a name value object within the custom_arguments array when triggering the Function using the TriggerFunction operation. Only available for functions with an event source set to 'api_direct'.<br><br>Custom arguments are intended to be used by AI to infer values when triggering the Function. For example, if you have a custom argument with the description 'Parse the campaign ID from the sale item details.', when triggering the Function using the TriggerFunction operation, you can have AI read the custom argument description and infer a value for the custom argument based on the sale item details.<br><br>Important: If providing the custom_arguments array, any existing custom_arguments will be replaced with those submitted. To ensure any previous custom_arguments are preserved, please use the GetFunction operation and include existing custom arguments in the EditFunction request.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the custom argument, which should be the name within the custom_arguments array object when triggering a Function using the TriggerFunction operation.<br><br>Note: Custom argument names should contain letters and underscores only, with no spaces.","type":"string","examples":["Example"]},"description":{"description":"The description of the custom argument determines what the inferred value should be when triggering the function.","type":"string","examples":["Example description"]}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"function_id":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/functions/{function_id}/trigger":{"post":{"summary":"Trigger A Function","description":"Trigger a specific Function using the Function ID and trigger path. Note: Only Functions configured with a trigger setting of 'api_direct' are triggerable via the API.","operationId":"TriggerFunction","x-api-permission-description":"Allows the triggering of functions.","x-api-permission":"function:trigger","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/TriggerFunction.md","tags":["Functions"],"parameters":[{"in":"path","name":"function_id","description":"The Function ID.","required":true,"schema":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item_type":{"type":"string","description":"If triggering a Function in reference to, or during the processing of a specific item, specify the item_type.","examples":["sale"],"enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"]},"item_id":{"type":"string","description":"If triggering a Function in reference to, or during the processing of a specific item, provide the ID of the item corresponding to the item_type.","minLength":20,"maxLength":20,"examples":["pgm1q7yjKjF7qyAM7EXK"]},"custom_arguments":{"description":"An array of custom arguments, specific to the Function being triggered if the Function has a non-empty custom_arguments array.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the custom argument, which should be the name within the custom_arguments array from the source Function being triggered.","type":"string","examples":["campaign_id"]},"value":{"description":"The value of the custom argument.","type":"string","examples":["Parse the campaign ID from the sale item details."]}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"function_id":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"function_run_id":{"type":"string","description":"The 20 character RevCent ID identifying the successful Function run.","minLength":20,"maxLength":20,"examples":["Zmv5RVGGRZUd27EGVKLO"]},"function_response":{"type":"string","description":"The function response is determined by the RevCent users function code.","examples":["{code: 1, message: 'OK'}"]},"result":{"type":"string","examples":["Function triggered."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Invalid request or the selected resource could not be triggered.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"The selected Function could not be triggered. No Function response or Function Run ID is available.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","enum":[0],"examples":[0]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"function_id":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"function_response":{"type":"string","enum":[""],"description":"Empty when the Function invocation fails; no Function response is available.","examples":[""]},"function_run_id":{"type":"string","enum":[""],"description":"Empty when the Function invocation fails; no Function Run ID is returned.","examples":[""]},"result":{"type":"string","enum":["Error occurred triggering function."],"examples":["Error occurred triggering function."]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/functions/{function_id}/delete":{"post":{"summary":"Delete A Function","description":"Delete a specific function using the function ID and delete path.","operationId":"DeleteFunction","x-api-permission-description":"Allows the deletion of the function.","x-api-permission":"function:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteFunction.md","tags":["Functions"],"parameters":[{"in":"path","name":"function_id","description":"The Function ID","required":true,"schema":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"function_id":{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]},"result":{"type":"string","examples":["Function deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/gateway_groups":{"get":{"summary":"Get Gateway Groups","description":"Returns gateway groups and summaries of their available gateways, newest first. Gateway groups organize gateways for payment processing.","operationId":"GetGatewayGroups","x-api-permission-description":"Allows the retrieval of gateway groups.","x-api-permission":"gateway_group:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/GetGatewayGroups.md","tags":["Gateway Groups"],"parameters":[{"description":"Maximum gateway groups per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of gateway groups, available gateway summaries and pagination totals.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of gateway groups in this page of results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with 0 returned as 1. The maximum requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The gateway group's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"description":"Description of the gateway group. Returns an empty string when unavailable.","type":"string","examples":["My group of gateways."]},"id":{"type":"string","description":"20 character RevCent ID of the gateway group.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"enabled":{"description":"Whether the gateway group is enabled. Individual gateways have their own enabled setting; this flag does not establish payment readiness.","type":"boolean","examples":[true]},"name":{"description":"Name of the gateway group. May be an empty string.","type":"string","examples":["My Gateway Group"]},"user_gateway":{"description":"Available gateways associated with the group, including disabled gateways. May be empty when no gateway summaries are available, even if membership was configured. Array order does not establish payment selection priority.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the gateway.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"description":"Name of the gateway. May be an empty string.","type":"string","examples":["Authorize"]},"enabled":{"description":"Whether this gateway is enabled, independently of the group setting. Disabled gateways remain visible with false. This flag does not establish payment readiness.","type":"boolean","examples":[true]}}}},"updated_date_unix":{"description":"The gateway group's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to limit gateway groups for the requested page. May be empty."},"total_count":{"description":"Total number of available gateway groups.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though page requests cannot exceed 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Gateway Group","description":"Create a gateway group for organizing payment gateways.","operationId":"CreateGatewayGroup","x-api-permission-description":"Allows the creation of gateway groups.","x-api-permission":"gateway_group:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/CreateGatewayGroup.md","tags":["Gateway Groups"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The gateway group name. Must be unique across gateway groups.","type":"string","examples":["My Gateway Group"]},"description":{"description":"The gateway group description.","type":"string","examples":["My group of gateways."]},"enabled":{"description":"Whether the gateway group is currently enabled.","type":"boolean","examples":[true]},"user_gateway":{"description":"An array of user gateway IDs which should be associated with the gateway group.","type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"gateway_group_id":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"result":{"type":"string","examples":["Gateway group created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/gateway_groups/{gateway_group_id}":{"get":{"summary":"Get A Gateway Group","description":"Returns a gateway group and summaries of its available gateways. Gateway groups organize gateways for payment processing.","operationId":"GetGatewayGroup","x-api-permission-description":"Allows the retrieval of gateway groups.","x-api-permission":"gateway_group:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/GetGatewayGroup.md","tags":["Gateway Groups"],"parameters":[{"in":"path","name":"gateway_group_id","description":"20 character RevCent ID of the gateway group to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of a gateway group and its available gateway summaries.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The gateway group's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"description":"Description of the gateway group. Returns an empty string when unavailable.","type":"string","examples":["My group of gateways."]},"id":{"type":"string","description":"20 character RevCent ID of the requested gateway group.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"enabled":{"description":"Whether the gateway group is enabled. Individual gateways have their own enabled setting; this flag does not establish payment readiness.","type":"boolean","examples":[true]},"name":{"description":"Name of the gateway group. May be an empty string.","type":"string","examples":["My Gateway Group"]},"user_gateway":{"description":"Available gateways associated with the group, including disabled gateways. May be empty when no gateway summaries are available, even if membership was configured. Array order does not establish payment selection priority.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the gateway.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"description":"Name of the gateway. May be an empty string.","type":"string","examples":["Authorize"]},"enabled":{"description":"Whether this gateway is enabled, independently of the group setting. Disabled gateways remain visible with false. This flag does not establish payment readiness.","type":"boolean","examples":[true]}}}},"updated_date_unix":{"description":"The gateway group's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Gateway Group","description":"Edit a specific gateway group using the gateway_group ID.","operationId":"EditGatewayGroup","x-api-permission-description":"Allows the editing of gateway groups.","x-api-permission":"gateway_group:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/EditGatewayGroup.md","tags":["Gateway Groups"],"parameters":[{"in":"path","name":"gateway_group_id","description":"The gateway group ID.","required":true,"schema":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The gateway group name. Must be unique across gateway groups.","type":"string","examples":["Example"]},"description":{"description":"The gateway group description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the gateway group is currently enabled.","type":"boolean"},"user_gateway":{"description":"An array of user gateway IDs which should be associated with the gateway group. If provided, will replace current gateway group gateway array with provided array, even if empty. Providing an empty array will remove all gateways from group.","type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"gateway_group_id":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/gateway_groups/{gateway_group_id}/add_user_gateway":{"post":{"summary":"Add Gateway To Group","description":"Add one or more user gateways to a specific gateway group using the gateway group ID.","operationId":"AddUserGatewayToGatewayGroup","x-api-permission-description":"Allows the addition of user gateways to a gateway group.","x-api-permission":"gateway_group:add_user_gateway","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/AddUserGatewayToGatewayGroup.md","tags":["Gateway Groups"],"parameters":[{"in":"path","name":"gateway_group_id","description":"The gateway group ID.","required":true,"schema":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"user_gateway":{"description":"An array of user gateway IDs which should be added to the gateway group.","type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["user_gateway"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"gateway_group_id":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/gateway_groups/{gateway_group_id}/delete":{"post":{"summary":"Delete A Gateway Group","description":"Delete an account-owned Gateway Group and remove it from payment routing. Static, dynamic, disabled and archived groups can be deleted. Its gateways remain available independently and are not deleted or disabled. Update payment profiles, projects and other configurations that reference the group; these are not automatically rewritten. Deletion and removal of gateway memberships succeed or fail together. Invalid, unavailable or already-deleted group IDs return an error; repeated deletion does not report another success.","operationId":"DeleteGatewayGroup","x-api-permission-description":"Allows deletion of gateway groups.","x-api-permission":"gateway_group:delete","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/DeleteGatewayGroup.md","tags":["Gateway Groups"],"parameters":[{"in":"path","name":"gateway_group_id","description":"20 character RevCent ID of the Gateway Group to delete, available from GetGatewayGroups or GetGatewayGroup.","required":true,"schema":{"description":"20 character RevCent ID of the Gateway Group to delete.","type":"string","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}},"description":"Optional. Omit the body or send an empty JSON object ({}). Additional properties and nonobject JSON are rejected."},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Successful Gateway Group deletion.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"gateway_group_id":{"description":"20 character RevCent ID of the deleted Gateway Group.","type":"string","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"result":{"type":"string","const":"Gateway group deleted.","description":"Confirmation that the Gateway Group was deleted.","examples":["Gateway group deleted."]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/gateway_groups/{gateway_group_id}/remove_user_gateway":{"post":{"summary":"Remove Gateway From Group","description":"Remove one or more user gateways from a specific gateway group using the gateway group ID.","operationId":"RemoveUserGatewayFromGatewayGroup","x-api-permission-description":"Allows the removal of user gateways from a gateway group.","x-api-permission":"gateway_group:remove_user_gateway","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RemoveUserGatewayFromGatewayGroup.md","tags":["Gateway Groups"],"parameters":[{"in":"path","name":"gateway_group_id","description":"The gateway group ID.","required":true,"schema":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"user_gateway":{"description":"An array of user gateway IDs which should be removed from the gateway group.","type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["user_gateway"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"gateway_group_id":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/key_values":{"get":{"summary":"Get Key Values","description":"Returns account-level Key Value summaries in ascending key order. Use GetKeyValue to retrieve an individual value.","operationId":"GetKeyValues","x-api-permission-description":"Allows the retrieval of key values.","x-api-permission":"key_value:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/key-value","x-kb-name":"Key Values","x-md-link":"markdown/mcp/operation/GetKeyValues.md","tags":["Key Values"],"parameters":[{"description":"Maximum Key Value summaries per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of account-level Key Value summaries and pagination totals.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of Key Value summaries in this page of results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with 0 returned as 1. The maximum requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"The Key Value's creation timestamp in Unix seconds. Zero is returned when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]},"key":{"description":"Literal Key Value name, including historical names. May be empty when unavailable. Listed names do not necessarily satisfy GetKeyValue path requirements.","type":"string","examples":["a_unique_key"]},"description":{"description":"Description of the Key Value. Historical text is returned without truncation; returns an empty string when unavailable.","type":"string","examples":["My key description."]},"key_type":{"description":"Value category: string for text, or pointer for a reference to another resource. Unavailable or unrecognized types are returned as string. Use GetKeyValue to retrieve the value and any pointer details.","type":"string","enum":["string","pointer"],"examples":["string","pointer"]},"updated_date_unix":{"description":"The Key Value summary's update timestamp in Unix seconds. Zero is returned when unavailable or invalid. This may differ from the value update timestamp returned by GetKeyValue.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to limit Key Value summaries for the requested page. May be empty."},"total_count":{"description":"The total number of Key Values for the account.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though page requests cannot exceed 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Key Value","description":"Create a system wide key value available for use.","operationId":"CreateKeyValue","x-api-permission-description":"Allows the creation of key values.","x-api-permission":"key_value:create","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/key-value","x-kb-name":"Key Values","x-md-link":"markdown/mcp/operation/CreateKeyValue.md","tags":["Key Values"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"key":{"description":"The key, which cannot be modified once created. The key can contain alphabetical characters or underscores only, with a minimum length of 2 and a maximum length of 100. Cannot start or end with an underscore. Consecutive underscores are not accepted.","type":"string","examples":["a_unique_key"],"minLength":2,"maxLength":100},"description":{"description":"The key description.","type":"string","examples":["My key description."],"maxLength":255},"value":{"description":"The value for the key. Cannot exceed 5MB in size. If the key_type property equals 'pointer', the value property must be either the RevCent ID or name of the item corresponding to the pointer_type.","type":"string","examples":["some string"]},"key_type":{"description":"The key_type can be either 'string' or 'pointer', default is 'string'. If set to 'pointer', the pointer_type property must be set and the value property must successfully associate with an item corresponding to the pointer_type.","type":"string","examples":["string","pointer"],"enum":["string","pointer"]},"pointer_type":{"description":"If the key_type property equals 'pointer', you must specify the pointer_type, otherwise ignore. The pointer_type is item that the keys' value is pointing to. For example, if pointer_type is 'payment_profile', then value property must be either the name or ID of an existing payment profile in RevCent.","type":"string","examples":["payment_profile"],"enum":["payment_profile"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["key","value"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"key":{"description":"The key, which cannot be modified once created. The key can contain alphabetical characters or underscores only, with a minimum length of 2 and a maximum length of 100. Cannot start or end with an underscore. Consecutive underscores are not accepted.","type":"string","examples":["a_unique_key"],"minLength":2,"maxLength":100},"description":{"description":"The key description.","type":"string","examples":["My key description."],"maxLength":255},"value":{"description":"The value for the key. Cannot exceed 5MB in size. If the key_type property equals 'pointer', the value property must be either the RevCent ID or name of the item corresponding to the pointer_type.","type":"string","examples":["some string"]},"key_type":{"description":"The key_type can be either 'string' or 'pointer', default is 'string'. If set to 'pointer', the pointer_type property must be set and the value property must successfully associate with an item corresponding to the pointer_type.","type":"string","examples":["string","pointer"],"enum":["string","pointer"]},"pointer_type":{"description":"If the key_type property equals 'pointer', you must specify the pointer_type, otherwise ignore. The pointer_type is item that the keys' value is pointing to. For example, if pointer_type is 'payment_profile', then value property must be either the name or ID of an existing payment profile in RevCent.","type":"string","examples":["payment_profile"],"enum":["payment_profile"]},"result":{"type":"string","examples":["Key value created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/key_values/{key}":{"get":{"summary":"Get A Key Value","description":"Returns an account-level Key Value and its available value using the exact key name.","operationId":"GetKeyValue","x-api-permission-description":"Allows the retrieval of key values.","x-api-permission":"key_value:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/key-value","x-kb-name":"Key Values","x-md-link":"markdown/mcp/operation/GetKeyValue.md","tags":["Key Values"],"parameters":[{"in":"path","name":"key","description":"Exact, case-sensitive key name; spaces are preserved. Encode it as a single URL path segment. The API accepts 1–100 UTF-16 code units; supplementary Unicode characters count as two units. Digits, punctuation, spaces, repeated underscores and Unicode are supported. Control characters, slash, backslash and the complete names '.' and '..' are not allowed.","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"examples":["a_unique_key"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"An account-level Key Value with its available value and optional pointer details.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API call response code, 1 = Success","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The Key Value's creation timestamp in Unix seconds. Zero is returned when unavailable or invalid.","type":"integer","format":"unix-time","examples":[1675367500]},"key":{"description":"The exact literal Key Value name requested, preserving case and spaces.","type":"string","examples":["a_unique_key"]},"description":{"description":"Description of the Key Value. Historical text is returned without truncation; returns an empty string when unavailable.","type":"string","examples":["My key description."]},"value":{"description":"Returned text, or the literal reference value for a pointer. Pointer retrieval does not verify that the referenced resource exists. For string keys, an unavailable current value may return previously saved text; empty or invalid value content returns an empty string. Values are returned without truncation.","type":"string","examples":["some string"]},"key_type":{"description":"Value category: string for text, or pointer for a reference to another resource. Unavailable or unrecognized types are returned as string.","type":"string","enum":["string","pointer"],"examples":["string","pointer"]},"pointer_type":{"description":"Pointer category: payment_profile. Included only for pointers with this recognized category; omitted for string keys and unrecognized pointer categories.","type":"string","enum":["payment_profile"],"examples":["payment_profile"]},"updated_date_unix":{"description":"The value's available update timestamp in Unix seconds, with fractional seconds discarded. When unavailable, the Key Value's update timestamp is returned, or zero if that is unavailable or invalid. This may differ from the summary timestamp returned by GetKeyValues.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false,"dependentSchemas":{"pointer_type":{"properties":{"key_type":{"const":"pointer","description":"The key type associated with this resource.","examples":["pointer"]}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Key Value","description":"Edit a specific system wide key value using the key.","operationId":"EditKeyValue","x-api-permission-description":"Allows the editing of key values.","x-api-permission":"key_value:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/key-value","x-kb-name":"Key Values","x-md-link":"markdown/mcp/operation/EditKeyValue.md","tags":["Key Values"],"parameters":[{"in":"path","name":"key","description":"The key you wish to edit.","required":true,"schema":{"description":"The key, which cannot be modified once created. The key can contain alphabetical characters or underscores only, with a minimum length of 2 and a maximum length of 100. Cannot start or end with an underscore. Consecutive underscores are not accepted.","type":"string","examples":["a_unique_key"],"minLength":2,"maxLength":100}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"description":"Description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["My key description."],"maxLength":255},"value":{"description":"The value for the key. Cannot exceed 5MB in size. If the key_type property equals 'pointer', the value property must be either the RevCent ID or name of the item corresponding to the pointer_type.","type":"string","examples":["some string"]},"key_type":{"description":"The key_type can be either 'string' or 'pointer', default is 'string'. If set to 'pointer', the pointer_type property must be set and the value property must successfully associate with an item corresponding to the pointer_type.","type":"string","examples":["string","pointer"],"enum":["string","pointer"]},"pointer_type":{"description":"If the key_type property equals 'pointer', you must specify the pointer_type, otherwise ignore. The pointer_type is item that the keys' value is pointing to. For example, if pointer_type is 'payment_profile', then value property must be either the name or ID of an existing payment profile in RevCent.","type":"string","examples":["payment_profile"],"enum":["payment_profile"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"key":{"description":"The key, which cannot be modified once created. The key can contain alphabetical characters or underscores only, with a minimum length of 2 and a maximum length of 100. Cannot start or end with an underscore. Consecutive underscores are not accepted.","type":"string","examples":["a_unique_key"],"minLength":2,"maxLength":100},"description":{"description":"The key description.","type":"string","examples":["My key description."],"maxLength":255},"value":{"description":"The value for the key. Cannot exceed 5MB in size. If the key_type property equals 'pointer', the value property must be either the RevCent ID or name of the item corresponding to the pointer_type.","type":"string","examples":["some string"]},"key_type":{"description":"The key_type can be either 'string' or 'pointer', default is 'string'. If set to 'pointer', the pointer_type property must be set and the value property must successfully associate with an item corresponding to the pointer_type.","type":"string","examples":["string","pointer"],"enum":["string","pointer"]},"pointer_type":{"description":"If the key_type property equals 'pointer', you must specify the pointer_type, otherwise ignore. The pointer_type is item that the keys' value is pointing to. For example, if pointer_type is 'payment_profile', then value property must be either the name or ID of an existing payment profile in RevCent.","type":"string","examples":["payment_profile"],"enum":["payment_profile"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/key_values/{key}/delete":{"post":{"summary":"Delete A Key Value","description":"Delete a key value using the key.","operationId":"DeleteKeyValue","x-api-permission-description":"Allows the deletion of key values.","x-api-permission":"key_value:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteKeyValue.md","tags":["Key Values"],"parameters":[{"in":"path","name":"key","description":"The key you wish to delete.","required":true,"schema":{"description":"The key, which cannot be modified once created. The key can contain alphabetical characters or underscores only, with a minimum length of 2 and a maximum length of 100. Cannot start or end with an underscore. Consecutive underscores are not accepted.","type":"string","examples":["a_unique_key"],"minLength":2,"maxLength":100}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/metadata":{"get":{"summary":"Get Metadata","description":"Returns metadata-name summaries for the account, newest first. Use a returned id with GetMetadataEntry to retrieve its associated values.","operationId":"GetMetadata","x-api-permission-description":"Allows the retrieval of metadata.","x-api-permission":"metadata:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tracking/conversion-tracking","x-kb-name":"Metadata","x-md-link":"markdown/mcp/operation/GetMetadata.md","tags":["Metadata"],"parameters":[{"description":"Maximum metadata entries per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 is treated as page 1. Required.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of metadata-name summaries and pagination totals.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of metadata entries in this page of results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"An account metadata-name summary. Use its id with GetMetadataEntry to retrieve associated values.","additionalProperties":false,"properties":{"created_date_unix":{"description":"The entry's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the metadata entry. Use it with GetMetadataEntry to retrieve associated values.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"name":{"description":"Exact metadata name, including historical text and empty strings.","type":"string","examples":["landing_page"]},"enabled":{"description":"Whether the metadata entry is enabled. Returns false when the setting is unavailable or is not true.","type":"boolean","examples":[true]},"updated_date_unix":{"description":"The entry's update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to limit metadata-name summaries for the requested page. May be empty."},"total_count":{"description":"The total number of available metadata-name summaries for the account.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though requests cannot exceed page 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Insert Metadata","description":"Insert one or more metadata entries to a specific item, using an item type and item ID.","operationId":"InsertMetadata","x-api-permission-description":"Allows the insertion of metadata.","x-api-permission":"metadata:insert","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/tracking/conversion-tracking","x-kb-name":"Metadata","x-md-link":"markdown/mcp/operation/InsertMetadata.md","tags":["Metadata"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item_type":{"type":"string","description":"The item type the metadata is being inserted to.","enum":["customer","sale","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","chargeback","fraud_detection"],"examples":["customer"]},"item_id":{"type":"string","description":"The ID of the item type that the metadata is being inserted to.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","minItems":1},"cascade":{"type":"boolean","description":"Whether or not to cascade inserted metadata into all sub related items. Default is false. For example, if inserting to sale, any shipping, subscriptions, etc. related to the sale will also have the metadata automatically inserted. Metadata will always be inserted to a related customer record regardless of cascade value."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["item_type","item_id","metadata"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"item_type":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"description":"The 20 character customer ID when the target is a customer or related customer details are included.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"sale_id":{"description":"The 20 character sale ID when item_type is sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"product_sale_id":{"description":"The 20 character product sale ID when item_type is product_sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"shipping_id":{"description":"The 20 character shipping ID when item_type is shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"subscription_id":{"description":"The 20 character subscription ID when item_type is subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_renewal_id":{"description":"The 20 character subscription renewal ID when item_type is subscription_renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"salvage_transaction_id":{"description":"The 20 character salvage transaction ID when item_type is salvage_transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"chargeback_id":{"description":"The 20 character chargeback ID when item_type is chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"fraud_detection_id":{"description":"The 20 character fraud detection ID when item_type is fraud_detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"metadata":{"type":"array","description":"The submitted metadata entries. Entries include entry_date when cascade is true.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The metadata name.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"entry_date":{"type":"string","description":"The insertion date in YYYY-MM-DD form, included when cascade is true.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"customer":{"type":"object","additionalProperties":false,"description":"Related customer details, when available after the metadata is inserted. May be omitted even when insertion succeeds.","properties":{"internal_id":{"type":["string","null"],"description":"The customer reference, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"first_name":{"type":["string","null"],"description":"The customer first name, when available.","examples":["Alex"]},"last_name":{"type":["string","null"],"description":"The customer last name, when available.","examples":["River"]},"address_line_1":{"type":["string","null"],"description":"The customer first address line, when available.","examples":["123 Example Street"]},"address_line_2":{"type":["string","null"],"description":"The customer second address line, when available.","examples":["Suite 100"]},"city":{"type":["string","null"],"description":"The customer city, when available.","examples":["Boston"]},"state":{"type":["string","null"],"description":"The customer state or region, when available.","examples":["MA"]},"zip":{"type":["string","null"],"description":"The customer postal code, when available.","examples":["02108"]},"company":{"type":["string","null"],"description":"The customer company, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":["string","null"],"description":"The customer country, when available.","examples":["USA"]},"email":{"type":["string","null"],"description":"The customer email address, when available.","examples":["alex@example.com"]},"phone":{"type":["string","null"],"description":"The customer phone number, when available.","examples":["+12025550123"]},"id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"metadata":{"type":"array","maxItems":10,"description":"Up to the first ten metadata entries associated with the customer. Historical text is preserved.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["Example"]},"value":{"type":"string","description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"entry_date":{"type":"string","description":"The metadata entry date, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"customer_group":{"type":"array","description":"The customer groups associated with this customer.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The customer group name.","examples":["Example"]}}}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/metadata/{metadata_id}":{"get":{"summary":"Get A Metadata Entry","description":"Retrieve a metadata entry and its associated values. Returns up to 1,000 values; this operation does not support pagination.","operationId":"GetMetadataEntry","x-api-permission-description":"Allows the retrieval of metadata.","x-api-permission":"metadata:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tracking/conversion-tracking","x-kb-name":"Metadata","x-md-link":"markdown/mcp/operation/GetMetadataEntry.md","tags":["Metadata"],"parameters":[{"in":"path","name":"metadata_id","description":"20 character RevCent ID of the metadata entry to retrieve. Obtain it from GetMetadata.","required":true,"schema":{"description":"20 character RevCent ID of the metadata entry.","type":"string","title":"Metadata ID","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested metadata entry and up to 1,000 associated values.","properties":{"api_call_id":{"type":"string","description":"20 character RevCent ID of this API call.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The entry's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"The 20 character RevCent ID of the requested metadata entry.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]},"name":{"description":"Exact metadata name, returned without changing its text. May be an empty string.","type":"string","examples":["landing_page"]},"enabled":{"description":"Whether the metadata entry is enabled. Disabled entries remain retrievable.","type":"boolean","examples":[true]},"values":{"type":"array","description":"Up to the first 1,000 associated values, preserving their order and duplicates. Returns an empty array when no string values are available. A response containing 1,000 values may be incomplete; pagination is not supported.","items":{"type":"string","description":"A metadata value returned unchanged, including any whitespace. May be an empty string.","examples":["homepage"]},"maxItems":1000},"updated_date_unix":{"description":"The entry's update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/notes":{"post":{"summary":"Create A Note","description":"Create a note for a specific item, using an item type and item ID.","operationId":"CreateNote","x-api-permission-description":"Allows the creation of notes.","x-api-permission":"note:create","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"Creating a note will simultaneously attach the note to the customer related to the specific item, allowing you to view all notes for a customer and related entities.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateNote.md","tags":["Notes"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item_type":{"type":"string","description":"The item type the note is being created for.","enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal"],"examples":["sale"]},"item_id":{"type":"string","description":"The ID of the item type that the note is being created for.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"text":{"type":"string","description":"The text content of the note you are creating.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["item_id","item_type","text"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The created note and target identifiers. Associated customer details are included when available.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"item_type":{"type":"string","description":"The note target type submitted in the request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"item_id":{"type":"string","description":"The 20 character RevCent ID of the note target, matching the submitted item_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"note_id":{"type":"string","description":"A 20 character note ID.","minLength":20,"maxLength":20,"examples":["9r0NrKQ864FaOrmOYmQn"]},"result":{"type":"string","description":"Confirmation that the note was created.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]},"sale_id":{"description":"A 20 character RevCent ID of the target sale. Returned when item_type is sale; matches item_id.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"customer_id":{"description":"A 20 character RevCent ID of the customer. Matches item_id for a customer-target note; otherwise identifies the associated customer when its details are included.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"product_sale_id":{"description":"A 20 character RevCent ID of the target product sale. Returned when item_type is product_sale; matches item_id.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"shipping_id":{"description":"A 20 character RevCent ID of the target shipping. Returned when item_type is shipping; matches item_id.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"subscription_id":{"description":"A 20 character RevCent ID of the target subscription. Returned when item_type is subscription; matches item_id.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_renewal_id":{"description":"A 20 character RevCent ID of the target subscription renewal. Returned when item_type is subscription_renewal; matches item_id.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"customer":{"type":"object","description":"Associated customer details when available. May accompany any supported note target; omitted when customer details are unavailable.","additionalProperties":false,"properties":{"id":{"type":["string","null"],"description":"The associated customer’s 20 character RevCent ID, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"type":["string","null"],"description":"Your own reference for the customer, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"first_name":{"type":["string","null"],"description":"The customer’s first name, or null when unavailable.","examples":["Alex"]},"last_name":{"type":["string","null"],"description":"The customer’s last name, or null when unavailable.","examples":["River"]},"address_line_1":{"type":["string","null"],"description":"The first line of the customer’s address, or null when unavailable.","examples":["123 Example Street"]},"address_line_2":{"type":["string","null"],"description":"The second line of the customer’s address, or null when unavailable.","examples":["Suite 100"]},"city":{"type":["string","null"],"description":"The customer’s city, or null when unavailable.","examples":["Boston"]},"state":{"type":["string","null"],"description":"The customer’s state or province, or null when unavailable.","examples":["MA"]},"zip":{"type":["string","null"],"description":"The customer’s ZIP or postal code, or null when unavailable.","examples":["02108"]},"company":{"type":["string","null"],"description":"The customer’s company, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":["string","null"],"description":"The customer’s country code, or null when unavailable.","examples":["USA"]},"email":{"type":["string","null"],"description":"The customer’s email address, or null when unavailable.","examples":["alex@example.com"]},"phone":{"type":["string","null"],"description":"The customer’s phone number, or null when unavailable.","examples":["+12025550123"]},"customer_group":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The customer group’s 20 character RevCent ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The customer group’s name.","examples":["Example"]}}},"description":"The customer’s available group memberships. May be empty."},"metadata":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["Example"]},"value":{"type":"string","description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"entry_date":{"type":"string","description":"The entry’s recorded date text, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"description":"Up to ten metadata entries associated with the customer. May be empty."}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/offline_payments":{"get":{"summary":"Get Offline Payments","description":"Retrieve offline payments matching a creation-date range and optional filters, newest first. Use a returned id with GetOfflinePayment to retrieve one payment.","operationId":"GetOfflinePayments","x-api-permission-description":"Allows the retrieval of offline payments.","x-api-permission":"offline_payment:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date range must be shorter than 95 days, including when customer_id is supplied.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetOfflinePayments.md","tags":["Offline Payments"],"parameters":[{"description":"Inclusive creation-date range start as Unix seconds. Must not exceed date_end. Equal endpoints return an empty range.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive creation-date range end as Unix seconds. The elapsed range must be shorter than 95 days (8,208,000 seconds).","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Maximum payments per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Select payments associated with any supplied campaign ID. Accepts up to 50 distinct IDs as repeated query values. Explicit campaign selection includes matching payments even when the campaign is excluded from default lists.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"20 character RevCent ID of the campaign.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Filter by up to 50 distinct three-character currency values, supplied as repeated query values. Inputs are uppercased before exact matching; historical lowercase response values do not match their uppercase equivalents.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Select payments associated with any supplied shop ID, within the shops accessible to the API credentials. Accepts up to 50 distinct IDs as repeated query values.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the shop.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Match any supplied status filter: complete matches status text containing Complete; refunded matches text containing Refund; chargeback matches Chargeback; fraud selects fraud-marked payments. Matching is case-sensitive. Supply up to four distinct tokens as repeated query values. These tokens differ from returned status text.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["complete","refunded","fraud","chargeback"],"examples":["complete","refunded","fraud","chargeback"]}},"style":"form","explode":true},{"description":"Match up to 50 metadata name/value pairs. Matching is exact and case-sensitive; values for the same name are alternatives, and different names must all match. Text is not trimmed. Supply repeated JSON object query values or indexed fields such as metadata_filter[0][name] and metadata_filter[0][value]. A single pair may use metadata_filter[name] and metadata_filter[value]. A JSON array is not accepted.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"Exact metadata name to match, from 1 to 100 UTF-16 code units. Text is not trimmed.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"Exact metadata value to match, from 1 to 255 UTF-16 code units. Use METADATA_NAME_EXISTS to match the name regardless of its value. Text is not trimmed.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose payments to retrieve. All other filters and the required date range still apply.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of offline payments and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of offline payments in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the offline payment was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"amount":{"description":"Offline payment amount in the major units of iso_currency, rounded to two decimal places. Historical negative amounts are preserved. Returns zero when the amount is unavailable or invalid.","type":"number","format":"float","examples":[255.92]},"campaign_id":{"description":"The 20 character RevCent ID of the available related campaign. Returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available related campaign's name. Returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"description":"An available related customer summary. Omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's available nonempty country text, including historical values. No particular country-code format is guaranteed by this response.","examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, including historical values that may not be valid email addresses.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own reference for this customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when this customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available metadata name/value pairs. May be empty.","type":"array"},"updated_date_unix":{"description":"Unix timestamp in seconds when this customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"status":{"description":"Offline payment status, including historical values. Distinct from status_filter tokens and customer.status.","type":"string","examples":["Complete"]},"third_party_integration":{"description":"An available related third party integration summary. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user third party integration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The third party integration name.","type":"string","examples":["My Sezzle Integration"]},"third_party":{"description":"The integration provider.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the integration provider.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The integration provider's name.","type":"string","examples":["Sezzle"]}}}}},"third_party_shop":{"description":"An available related third party shop summary. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"updated_date_unix":{"description":"Unix timestamp in seconds when the offline payment was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"iso_currency":{"description":"Currency of the amount, normally a three-letter ISO 4217 code. Historical text and case are preserved. Returns USD when the currency is unavailable.","type":"string","examples":["USD"]}},"dependentRequired":{"campaign_id":["campaign_name"],"campaign_name":["campaign_id"]},"type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Offline payments on the requested page, newest first."},"total_count":{"description":"The total number of available offline payments matching the date range and all applicable filters, including customer_id when supplied.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/offline_payments/{offline_payment_id}":{"get":{"summary":"Get An Offline Payment","description":"Retrieve an offline payment, including its amount, status and available related information. No query parameters are accepted.","operationId":"GetOfflinePayment","x-api-permission-description":"Allows the retrieval of offline payments.","x-api-permission":"offline_payment:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetOfflinePayment.md","tags":["Offline Payments"],"parameters":[{"in":"path","name":"offline_payment_id","description":"20 character RevCent ID of the offline payment to retrieve. Obtain it from GetOfflinePayments.","required":true,"schema":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested offline payment and available related information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Unix timestamp in seconds when the offline payment was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"amount":{"description":"Offline payment amount in the major units of iso_currency, rounded to two decimal places. Historical negative amounts are preserved. Returns zero when the amount is unavailable or invalid.","type":"number","format":"float","examples":[255.92]},"campaign_id":{"description":"The 20 character RevCent ID of the available related campaign. Returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available related campaign's name. Returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"description":"An available related customer summary. Omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's available nonempty country text, including historical values. No particular country-code format is guaranteed by this response.","examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, including historical values that may not be valid email addresses.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own reference for this customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when this customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available metadata name/value pairs. May be empty.","type":"array"},"updated_date_unix":{"description":"Unix timestamp in seconds when this customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"status":{"description":"Offline payment status, including historical values. Distinct from customer.status.","type":"string","examples":["Complete"]},"third_party_integration":{"description":"An available related third party integration summary. Omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user third party integration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The third party integration name.","type":"string","examples":["My Sezzle Integration"]},"third_party":{"description":"The integration provider.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the integration provider.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The integration provider's name.","type":"string","examples":["Sezzle"]}}}}},"third_party_shop":{"description":"An available related third party shop summary. Omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"An array of metadata objects, each metadata object being a name and value pair.","type":"array"},"updated_date_unix":{"description":"Unix timestamp in seconds when the offline payment was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returned as an empty array; this does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related IDs in a bounded subset, not necessarily the complete history. May be empty. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"iso_currency":{"description":"Currency of the amount, normally a three-letter ISO 4217 code. Historical text and case are preserved. Returns USD when the currency is unavailable.","type":"string","examples":["USD"]}},"type":"object","additionalProperties":false,"dependentRequired":{"campaign_id":["campaign_name"],"campaign_name":["campaign_id"]}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_accounts":{"get":{"summary":"Get PayPal Accounts","description":"Retrieve the account’s PayPal accounts and their settings, newest first. Use a returned id with GetPayPalAccount to retrieve an individual account.","operationId":"GetPayPalAccounts","x-api-permission-description":"Allows the retrieval of PayPal Accounts.","x-api-permission":"paypal_account:retrieve","x-ai-options":["mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/payments/paypal/paypal-account","x-kb-name":"PayPal Accounts","x-md-link":"markdown/mcp/operation/GetPayPalAccounts.md","tags":["PayPal Accounts"],"parameters":[{"description":"Maximum PayPal accounts per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of PayPal accounts and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of PayPal accounts in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","description":"A PayPal account and its returned settings.","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the PayPal account was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the PayPal account. Use it with GetPayPalAccount to retrieve that account.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"PayPal account name, returned with its original text and whitespace. May be empty.","type":"string","examples":["My PayPal Account"]},"description":{"description":"The optional PayPal-account description. May be empty; omitted when unavailable.","type":"string","examples":["The PayPal account for mystore.com."]},"enabled":{"description":"Whether the PayPal account is enabled. Disabled accounts are included in this list.","type":"boolean","examples":[true]},"paypal_account_email":{"description":"The email associated with the PayPal account. May be empty; returns an empty string when unavailable.","type":"string","examples":["admin@mystore.com"]},"paypal_account_app_id":{"description":"The application ID assigned by PayPal, distinct from the RevCent account ID. May be empty; returns an empty string when unavailable.","type":"string","examples":["APP-80W284485P519543T"]},"campaign":{"type":["string","null"],"description":"The associated 20 character RevCent campaign ID, or null when unavailable.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"third_party_shop":{"type":"array","description":"Associated third-party shop IDs as strings, in their returned order. May be empty and may contain repeated IDs.","items":{"description":"A 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"transaction_confirmation":{"type":"boolean","description":"Whether PayPal transaction confirmation is required before marking a sale paid. Returns false when unavailable.","examples":[false]},"add_tracking":{"type":"boolean","description":"Whether shipment tracking information is added to associated PayPal transactions. Returns true unless explicitly disabled.","examples":[true]},"updated_date_unix":{"description":"When the PayPal account was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"The PayPal accounts on this page, newest first."},"total_count":{"description":"The total number of available PayPal accounts for the account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A PayPal Account","description":"Create a PayPal Account, which will issue a unique PayPal Account ID.","operationId":"CreatePayPalAccount","x-api-permission-description":"Allows the creation of PayPal Accounts.","x-api-permission":"paypal_account:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/paypal/paypal-account","x-kb-name":"PayPal Accounts","x-md-link":"markdown/mcp/operation/CreatePayPalAccount.md","tags":["PayPal Accounts"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The PayPal Account name. Must be unique from other PayPal Account names.","examples":["Example"]},"description":{"type":"string","description":"The PayPal Account description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the PayPal Account is enabled."},"paypal_account_email":{"description":"The PayPal account email. The email associated with the PayPal account within PayPal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign":{"type":"string","description":"A 20 character campaign ID. The campaign associated with the PayPal account. This will apply the same campaign to PayPal transactions associated with this account.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shop":{"type":"array","description":"An array of third party shops which are associated with the PayPal account. Each object in the array should contain the ID of the third party shop you wish to link to the PayPal account. By associating a third party shop(s) to the PayPal account, it will ensure PayPal transactions from third party shop(s) are correctly linked to the appropriate PayPal account in RevCent.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"transaction_confirmation":{"type":"boolean","description":"Whether to require transaction confirmation for PayPal transactions before marking the sale as paid in RevCent. Highly recommended set to false. If false, RevCent will create a sale and mark as paid immediately upon PayPal purchase (recommended). If true, it will take between 2 to 4 hours for RevCent to confirm the PayPal transaction due to a lag within the PayPal API, and not RevCent."},"add_tracking":{"type":"boolean","description":"Whether you want RevCent to add the shipment tracking information to respective PayPal transactions when shipments are shipped. Recommended set to true."},"fields":{"type":"object","description":"The PayPal account credentials required for RevCent to access the PayPal account. The credentials are generated by logging into PayPal developers at https://developer.paypal.com/developer/applications then going to 'App & Credentials' > REST API Apps and click the Create App button. Make sure it is a Live app, not a Sandbox app.","additionalProperties":false,"properties":{"client_id":{"type":"string","description":"The client ID for the PayPal REST API app created.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"secret":{"type":"string","description":"The secret for the PayPal REST API app created.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["client_id","secret"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","paypal_account_email","campaign"],"type":"object","allOf":[{"not":{"required":["fields","secure_form_id"]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"paypal_account_id":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_accounts/{paypal_account_id}":{"get":{"summary":"Get A PayPal Account","description":"Retrieve a PayPal account and its settings using its RevCent ID.","operationId":"GetPayPalAccount","x-api-permission-description":"Allows the retrieval of PayPal Accounts.","x-api-permission":"paypal_account:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/paypal/paypal-account","x-kb-name":"PayPal Accounts","x-md-link":"markdown/mcp/operation/GetPayPalAccount.md","tags":["PayPal Accounts"],"parameters":[{"in":"path","name":"paypal_account_id","description":"20 character RevCent ID of the PayPal account to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested PayPal account and its settings.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the PayPal account was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the PayPal account, matching the requested paypal_account_id.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"PayPal account name, returned with its original text and whitespace. May be empty.","type":"string","examples":["My PayPal Account"]},"description":{"description":"The optional PayPal-account description. May be empty; omitted when unavailable.","type":"string","examples":["The PayPal account for mystore.com."]},"enabled":{"description":"Whether the PayPal account is enabled. Disabled accounts can also be retrieved.","type":"boolean","examples":[true]},"paypal_account_email":{"description":"The email associated with the PayPal account. May be empty; returns an empty string when unavailable.","type":"string","examples":["admin@mystore.com"]},"paypal_account_app_id":{"description":"The application ID assigned by PayPal, distinct from the RevCent account ID. May be empty; returns an empty string when unavailable.","type":"string","examples":["APP-80W284485P519543T"]},"campaign":{"type":["string","null"],"description":"The associated 20 character RevCent campaign ID, or null when unavailable.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"third_party_shop":{"type":"array","description":"Associated third-party shop IDs as strings, in their returned order. May be empty and may contain repeated IDs.","items":{"description":"A 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"transaction_confirmation":{"type":"boolean","description":"Whether PayPal transaction confirmation is required before marking a sale paid. Returns false when unavailable.","examples":[false]},"add_tracking":{"type":"boolean","description":"Whether shipment tracking information is added to associated PayPal transactions. Returns true unless explicitly disabled.","examples":[true]},"updated_date_unix":{"description":"When the PayPal account was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A PayPal Account","description":"Edit a previously created PayPal Account using the PayPal Account ID. Only supplied fields are updated.","operationId":"EditPayPalAccount","x-api-permission-description":"Allows the editing of PayPal Accounts.","x-api-permission":"paypal_account:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/paypal/paypal-account","x-kb-name":"PayPal Accounts","x-md-link":"markdown/mcp/operation/EditPayPalAccount.md","tags":["PayPal Accounts"],"parameters":[{"in":"path","name":"paypal_account_id","description":"The PayPal Account ID","required":true,"schema":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The PayPal account name. Must be unique from other PayPal account names.","examples":["Example"]},"description":{"type":"string","description":"The PayPal account description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the PayPal account is enabled."},"paypal_account_email":{"description":"The PayPal account email. The email associated with the PayPal account within PayPal.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign":{"type":"string","description":"A 20 character campaign ID. The campaign associated with the PayPal account. This will apply the same campaign to PayPal transactions associated with this account.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shop":{"type":"array","description":"An array of third party shops which are associated with the PayPal account. Each object in the array should contain the ID of the third party shop you wish to link to the PayPal account. By associating a third party shop(s) to the PayPal account, it will ensure PayPal transactions from third party shop(s) are correctly linked to the appropriate PayPal account in RevCent.","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"transaction_confirmation":{"type":"boolean","description":"Whether to require transaction confirmation for PayPal transactions before marking the sale as paid in RevCent. Recommended set to false. If false, RevCent will create a sale and mark as paid immediately upon PayPal purchase (recommended). If true, it will take between 2 to 4 hours for RevCent to confirm the PayPal transaction due to a lag within the PayPal API, and not RevCent."},"add_tracking":{"type":"boolean","description":"Whether you want RevCent to add the shipment tracking information to respective PayPal transactions when shipments are shipped. Recommended set to true."},"fields":{"type":"object","description":"The PayPal account credentials required for RevCent to access the PayPal account. The credentials are generated by logging into PayPal developers at https://developer.paypal.com/developer/applications then going to 'App & Credentials' > REST API Apps and click the Create App button. Make sure it is a Live app, not a Sandbox app. Only provide fields if you wish to change the credentials RevCent previously saved when creating the PayPal account.","additionalProperties":false,"properties":{"client_id":{"type":"string","description":"The client ID for the PayPal REST API app created.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"secret":{"type":"string","description":"The secret for the PayPal REST API app created.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["client_id","secret"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","allOf":[{"not":{"required":["fields","secure_form_id"]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"paypal_account_id":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_accounts/{paypal_account_id}/delete":{"post":{"summary":"Delete A PayPal Account","description":"Delete a specific PayPal account using the PayPal account ID and delete path.","operationId":"DeletePayPalAccount","x-api-permission-description":"Allows the deletion of PayPal Accounts.","x-api-permission":"paypal_account:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeletePayPalAccount.md","tags":["PayPal Accounts"],"parameters":[{"in":"path","name":"paypal_account_id","description":"The PayPal account ID","required":true,"schema":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"paypal_account_id":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["PayPal account deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_disputes":{"get":{"summary":"Get PayPal Disputes","description":"Retrieve PayPal disputes, newest first by their creation time in RevCent. Date filters apply to creation time in PayPal; customer_id selects the customer’s disputes instead of applying the date filter.","operationId":"GetPayPalDisputes","x-api-permission-description":"Allows the retrieval of PayPal disputes.","x-api-permission":"paypal_dispute:retrieve","x-ai-options":["mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date interval may be at most 90 elapsed days, including when customer_id is supplied. Repeat an array filter parameter for multiple values; up to 50 distinct submitted values are accepted per filter. Values within a filter use OR; different filters use AND. For repeated date or pagination parameters, the last value is used.","x-kb-link":"https://kb.revcent.com/payments/paypal/dispute","x-kb-name":"PayPal Disputes","x-md-link":"markdown/mcp/operation/GetPayPalDisputes.md","tags":["PayPal Disputes"],"parameters":[{"description":"Inclusive start of the PayPal dispute creation interval, as a nonnegative Unix timestamp in seconds. Required and validated even when customer_id replaces the date filter.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive end of the PayPal dispute creation interval, as a nonnegative Unix timestamp in seconds. Must be at or after date_start and no more than 90 elapsed days later. Required and validated even with customer_id.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Maximum disputes per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by associated campaigns using 20 character RevCent IDs. Explicit selection includes matching campaigns even when excluded from ordinary lists. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Filter by three-character currency values, normally ISO 4217 codes. Values are uppercased for matching. Repeat for multiple values; up to 50 distinct submitted values are accepted, counting case variants separately before uppercasing. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by associated shops using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Results remain limited to the shops accessible with the credentials used. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"paypal_account_filter","in":"query","description":"Filter by associated PayPal accounts using their 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"name":"paypal_dispute_reason_filter","in":"query","description":"Filter by one or more supported PayPal dispute reasons. Repeat for multiple values, up to 50 distinct values. Returned historical reason text may include values unavailable as filters. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"],"examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED","MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED","UNAUTHORISED","CREDIT_NOT_PROCESSED","DUPLICATE_TRANSACTION","INCORRECT_AMOUNT","PAYMENT_BY_OTHER_MEANS","CANCELED_RECURRING_BILLING","PROBLEM_WITH_REMITTANCE","OTHER"]}},"style":"form","explode":true},{"name":"paypal_dispute_status_filter","in":"query","description":"Filter by one or more supported PayPal dispute statuses. Repeat for multiple values, up to 50 distinct values. Returned historical status text may include values unavailable as filters. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"],"examples":["OPEN","WAITING_FOR_BUYER_RESPONSE","WAITING_FOR_SELLER_RESPONSE","UNDER_REVIEW","RESOLVED","OTHER"]}},"style":"form","explode":true},{"description":"20 character RevCent ID of the customer whose disputes to retrieve. Replaces the date filter; date_start and date_end are still required and must form a valid interval of at most 90 days. Other supplied filters still apply. Only one distinct customer ID is accepted.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of PayPal disputes and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of disputes in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"When the dispute was created in RevCent, in Unix seconds. Determines result ordering.","type":"integer","format":"unix-time","examples":[1675367500]},"paypal_dispute_created_date_unix":{"description":"When the dispute was created in PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the dispute. Use it with GetPayPalDispute to retrieve the dispute.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"paypal_dispute_id":{"description":"The dispute identifier assigned by PayPal, distinct from the RevCent id. Omitted when unavailable or empty.","type":"string","examples":["PP-D-1234567"]},"paypal_dispute_amount":{"description":"Dispute amount in major units of iso_currency, without rounding. Historical values may be negative or fractional. Omitted when unavailable. The denomination is unavailable when iso_currency is omitted.","type":"number","format":"float","examples":[129.99]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name, when available and nonempty. May be omitted even when campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary. Omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. Separate from the PayPal dispute status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"iso_currency":{"type":"string","description":"The three-letter ISO 4217 currency code for the dispute, preserving its case. Defaults to USD when absent or empty; omitted for malformed explicit values. Do not assume the currency when this field is omitted.","minLength":3,"maxLength":3,"examples":["USD"]},"paypal_account":{"description":"The available associated PayPal account summary. Omitted when unavailable; name may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent PayPal-account ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The available nonempty name; omitted when unavailable.","type":"string","examples":["My PayPal Account"]},"paypal_account_email":{"description":"Available nonempty PayPal account email text; omitted when unavailable.","type":"string","examples":["myemail@gmail.com"]}}},"paypal_status":{"description":"The available PayPal status text. May include historical values beyond accepted request-filter choices; omitted when unavailable or empty.","type":"string","examples":["CLOSED"]},"paypal_reason":{"description":"The available PayPal reason text. May include historical values beyond accepted request-filter choices; omitted when unavailable or empty.","type":"string","examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]},"paypal_dispute_outcome":{"description":"The available PayPal outcome text, including historical values. Separate from status and reason filter choices; omitted when unavailable or empty.","type":"string","examples":["RESOLVED_BUYER_FAVOUR"]},"paypal_details_response":{"description":"Available nonempty PayPal dispute detail text. This optional string is not guaranteed to be valid JSON; omitted when unavailable or empty.","type":"string","examples":["{\"dispute_id\":\"PP-D-1234567\"}"]},"paypal_messages":{"type":"array","description":"Available PayPal messages. Individual messages may contain only some fields, and the array may be empty or incomplete.","items":{"type":"object","additionalProperties":false,"properties":{"time_posted":{"description":"When the message was posted, in ISO 8601 UTC format. Omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"posted_by":{"description":"The available nonempty text identifying the posting party; omitted when unavailable.","type":"string","examples":["BUYER"]},"content":{"description":"The available nonempty message content; omitted when unavailable.","type":"string","examples":["Did not receive product."]}}}},"third_party_shop":{"description":"The available associated third-party shop summary. Omitted when unavailable; name may be omitted.","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The available nonempty name; omitted when unavailable.","type":"string","examples":["My Store"]}},"type":"object"},"updated_date_unix":{"description":"When the dispute was updated in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"paypal_dispute_updated_date_unix":{"description":"When the dispute was updated in PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs; the selection may be empty or incomplete. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs; the selection may be empty or incomplete. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}},"type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to the requested limit of PayPal disputes, ordered newest first by RevCent creation time."},"total_count":{"description":"Total number of available disputes matching the request filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of result pages calculated from total_count and limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_disputes/{paypal_dispute_id}":{"get":{"summary":"Get A PayPal Dispute","description":"Retrieve a PayPal dispute using its RevCent dispute ID.","operationId":"GetPayPalDispute","x-api-permission-description":"Allows the retrieval of PayPal disputes.","x-api-permission":"paypal_dispute:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/payments/paypal/dispute","x-kb-name":"PayPal Disputes","x-md-link":"markdown/mcp/operation/GetPayPalDispute.md","tags":["PayPal Disputes"],"parameters":[{"in":"path","name":"paypal_dispute_id","description":"20 character RevCent ID of the dispute to retrieve. Use the id returned by GetPayPalDisputes; PayPal’s separate dispute identifier is returned in the response paypal_dispute_id field.","required":true,"schema":{"type":"string","description":"A 20 character PayPal dispute ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested PayPal dispute and its available related information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the dispute was created in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"paypal_dispute_created_date_unix":{"description":"When the dispute was created in PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the dispute, matching the requested path ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"paypal_dispute_id":{"description":"The dispute identifier assigned by PayPal, distinct from the RevCent id. Omitted when unavailable or empty.","type":"string","examples":["PP-D-1234567"]},"paypal_dispute_amount":{"description":"Dispute amount in major units of iso_currency, without rounding. Historical values may be negative or fractional. Omitted when unavailable. The denomination is unavailable when iso_currency is omitted.","type":"number","format":"float","examples":[129.99]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name, when available and nonempty. May be omitted even when campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary. Omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. Separate from the PayPal dispute status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"iso_currency":{"type":"string","description":"The three-letter ISO 4217 currency code for the dispute, preserving its case. Defaults to USD when absent or empty; omitted for malformed explicit values. Do not assume the currency when this field is omitted.","minLength":3,"maxLength":3,"examples":["USD"]},"paypal_account":{"description":"The available associated PayPal account summary. Omitted when unavailable; name may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent PayPal-account ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The available nonempty name; omitted when unavailable.","type":"string","examples":["My PayPal Account"]},"paypal_account_email":{"description":"Available nonempty PayPal account email text; omitted when unavailable.","type":"string","examples":["myemail@gmail.com"]}}},"paypal_status":{"description":"The available PayPal status text. May include historical values beyond accepted request-filter choices; omitted when unavailable or empty.","type":"string","examples":["CLOSED"]},"paypal_reason":{"description":"The available PayPal reason text. May include historical values beyond accepted request-filter choices; omitted when unavailable or empty.","type":"string","examples":["MERCHANDISE_OR_SERVICE_NOT_RECEIVED"]},"paypal_dispute_outcome":{"description":"The available PayPal outcome text, including historical values. Separate from status and reason filter choices; omitted when unavailable or empty.","type":"string","examples":["RESOLVED_BUYER_FAVOUR"]},"paypal_details_response":{"description":"Available nonempty PayPal dispute detail text. This optional string is not guaranteed to be valid JSON; omitted when unavailable or empty.","type":"string","examples":["{\"dispute_id\":\"PP-D-1234567\"}"]},"paypal_messages":{"type":"array","description":"Available PayPal messages. Individual messages may contain only some fields, and the array may be empty or incomplete.","items":{"type":"object","additionalProperties":false,"properties":{"time_posted":{"description":"When the message was posted, in ISO 8601 UTC format. Omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"posted_by":{"description":"The available nonempty text identifying the posting party; omitted when unavailable.","type":"string","examples":["BUYER"]},"content":{"description":"The available nonempty message content; omitted when unavailable.","type":"string","examples":["Did not receive product."]}}}},"third_party_shop":{"description":"The available associated third-party shop summary. Omitted when unavailable; name may be omitted.","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The available nonempty name; omitted when unavailable.","type":"string","examples":["My Store"]}},"type":"object"},"updated_date_unix":{"description":"When the dispute was updated in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"paypal_dispute_updated_date_unix":{"description":"When the dispute was updated in PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"A 20 character sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"A 20 character product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"A 20 character shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"A 20 character tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"A 20 character discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs; the selection may be empty or incomplete. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"A 20 character trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"A 20 character subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"A 20 character subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"A 20 character transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"A 20 character AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"A 20 character AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"A 20 character PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs; the selection may be empty or incomplete. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"A 20 character offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"A 20 character check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"A 20 character salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"A 20 character pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"A 20 character chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"A 20 character fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"A 20 character API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_transactions":{"get":{"summary":"Get PayPal Transactions","description":"Retrieve PayPal transactions, newest first by their creation time in RevCent. Use filters to select transactions by date, customer or associated resources.","operationId":"GetPayPalTransactions","x-api-permission-description":"Allows the retrieval of PayPal transactions.","x-api-permission":"paypal_transaction:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date interval may be at most 90 elapsed days, including when customer_id is supplied. customer_id replaces the date filter. For repeated date or pagination parameters, the last value is used.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetPayPalTransactions.md","tags":["PayPal Transactions"],"parameters":[{"description":"Inclusive start of the RevCent transaction creation interval, as a nonnegative Unix timestamp in seconds. Required and validated even when customer_id replaces the date filter. For repeated values, the last value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the RevCent transaction creation interval, as a nonnegative Unix timestamp in seconds. Must be at or after date_start and no more than 90 elapsed days later. Required and validated even with customer_id. For repeated values, the last value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Maximum transactions per page, from 1 to 25. Required; there is no default. For repeated values, the last value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page. For repeated values, the last value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by associated campaigns using 20 character RevCent IDs. Explicit selection includes matching campaigns even when excluded from ordinary lists. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Filter by three-character currency values, normally ISO 4217 codes. Values are uppercased for matching. Repeat for multiple values; up to 50 distinct submitted values are accepted, counting case variants separately before uppercasing. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by associated shops using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Results remain limited to the shops accessible with the credentials used. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"paypal_account_filter","in":"query","description":"Filter by associated PayPal accounts using their 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"description":"Filter by up to 50 submitted metadata name/value pairs. Repeat metadata_filter with one JSON object per value, or use metadata_filter[0][name] and metadata_filter[0][value] with further numeric indices. A single unindexed name/value pair is also supported; a JSON array is not. Values for the same name use OR; different names and other filters use AND. Text is matched exactly. Use METADATA_NAME_EXISTS as the value to match a name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose transactions to retrieve. Replaces the date filter; date_start and date_end are still required and must form a valid interval of at most 90 days. Other supplied filters still apply. Only one distinct customer ID is accepted.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of PayPal transactions and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of transactions in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"When the transaction was created in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the transaction. Use it with GetPayPalTransaction; it is distinct from the PayPal-issued paypal_transaction_id.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"amount_original_total":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Transaction amount less the transaction fee. Zero may indicate unavailable information.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Transaction fee amount. Zero may indicate unavailable information.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Transaction amount reported for this payment. It does not establish an unsettled balance or independently confirm capture status. Zero may indicate unavailable information.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Currently returns zero; it does not establish settlement history.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Currently returns zero; it does not establish whether a remaining balance exists.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Currently returns zero; it does not establish refund history.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available nonempty campaign name. May be omitted even when campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. This describes the customer, not the PayPal payment outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"paypal_account":{"description":"The available associated PayPal account summary; omitted when unavailable. Its name may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent PayPal account ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The PayPal account name.","type":"string","examples":["My PayPal Account"]},"paypal_account_email":{"description":"The email associated with the PayPal account.","type":"string","examples":["myemail@gmail.com"]}}},"paypal_customer_id":{"description":"The customer identifier assigned by PayPal, distinct from the RevCent customer ID. Omitted when unavailable or empty.","type":"string","examples":["123456"]},"paypal_transaction_amount":{"description":"Transaction amount in major units of iso_currency, without rounding. Historical values may be negative or fractional. Omitted when unavailable or invalid; may remain available when the amount_* summaries return zero.","type":"number","format":"float","examples":[0.01]},"paypal_transaction_date":{"description":"The transaction date supplied by PayPal, in ISO 8601 UTC format. Omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"paypal_transaction_date_unix":{"description":"The transaction date supplied by PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1562082418]},"paypal_transaction_id":{"description":"The separate transaction identifier assigned by PayPal. Omitted when unavailable or empty.","type":"string","examples":["XXXXXXXXXXXX"]},"third_party_shop":{"description":"The available associated third-party shop summary; omitted when unavailable. Its name may be omitted.","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 available valid metadata name/value pairs, preserving their text and order. May be empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"When the transaction was updated in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the related tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the related credit card transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the related check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be empty or incomplete. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be empty or incomplete. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Defaults to USD when absent, null or empty; omitted for malformed explicit values. Do not assume a denomination when omitted.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"is_forced_confirmation":{"description":"Whether this PayPal transaction was recorded as a forced confirmation.","type":"boolean"},"paypal_disputes":{"items":{"type":"string","description":"20 character RevCent ID of the related PayPal dispute.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related PayPal dispute IDs; the selection may be empty or incomplete. Retrieve each dispute using GetPayPalDispute.","maxItems":50},"fraud_detection_requests":{"items":{"type":"string","description":"20 character RevCent ID of the related fraud detection request.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related fraud detection request IDs; the selection may be empty or incomplete. ","maxItems":50}},"description":"A PayPal transaction with available customer and related-resource details. Monetary amounts use major units of iso_currency; the denomination is unavailable when iso_currency is omitted. The nine amount_* summaries use half-even rounding to two decimal places. All nine return zero when the transaction amount or fee is unavailable or invalid, or any summary is outside the supported numeric range. Zero can therefore mean unavailable information.","type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to the required limit of PayPal transactions, newest first by RevCent creation time."},"total_count":{"description":"Total number of available transactions matching the request filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of result pages calculated from total_count and limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_transactions/{paypal_transaction_id}":{"get":{"summary":"Get A PayPal Transaction","description":"Retrieve a PayPal transaction using its RevCent transaction ID.","operationId":"GetPayPalTransaction","x-api-permission-description":"Allows the retrieval of PayPal transactions.","x-api-permission":"paypal_transaction:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetPayPalTransaction.md","tags":["PayPal Transactions"],"parameters":[{"in":"path","name":"paypal_transaction_id","description":"20 character RevCent ID of the transaction to retrieve. Use the id returned by GetPayPalTransactions; PayPal’s separate transaction identifier is returned in the response paypal_transaction_id field.","required":true,"schema":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A PayPal transaction with available customer and related-resource details. Monetary amounts use major units of iso_currency; the denomination is unavailable when iso_currency is omitted. The nine amount_* summaries use half-even rounding to two decimal places. All nine return zero when the transaction amount or fee is unavailable or invalid, or any summary is outside the supported numeric range. Zero can therefore mean unavailable information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the transaction was created in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the transaction, matching the requested path ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"amount_original_total":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Transaction amount without adjustments for refunds, discounts or settlement. Zero may indicate unavailable information.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Transaction amount less the transaction fee. Zero may indicate unavailable information.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Transaction fee amount. Zero may indicate unavailable information.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Transaction amount reported for this payment. It does not establish an unsettled balance or independently confirm capture status. Zero may indicate unavailable information.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Currently returns zero; it does not establish settlement history.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Currently returns zero; it does not establish whether a remaining balance exists.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Currently returns zero; it does not establish refund history.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available nonempty campaign name. May be omitted even when campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code. Omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. This describes the customer, not the PayPal payment outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"paypal_account":{"description":"The available associated PayPal account summary; omitted when unavailable. Its name may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent PayPal account ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The PayPal account name.","type":"string","examples":["My PayPal Account"]},"paypal_account_email":{"description":"The email associated with the PayPal account.","type":"string","examples":["myemail@gmail.com"]}}},"paypal_customer_id":{"description":"The customer identifier assigned by PayPal, distinct from the RevCent customer ID. Omitted when unavailable or empty.","type":"string","examples":["123456"]},"paypal_transaction_amount":{"description":"Transaction amount in major units of iso_currency, without rounding. Historical values may be negative or fractional. Omitted when unavailable or invalid; may remain available when the amount_* summaries return zero.","type":"number","format":"float","examples":[0.01]},"paypal_transaction_date":{"description":"The transaction date supplied by PayPal, in ISO 8601 UTC format. Omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"paypal_transaction_date_unix":{"description":"The transaction date supplied by PayPal, in Unix seconds. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1562082418]},"paypal_transaction_id":{"description":"The separate transaction identifier assigned by PayPal. Omitted when unavailable or empty.","type":"string","examples":["XXXXXXXXXXXX"]},"third_party_shop":{"description":"The available associated third-party shop summary; omitted when unavailable. Its name may be omitted.","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent third-party shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 available valid metadata name/value pairs, preserving their text and order. May be empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"When the transaction was updated in RevCent, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the related tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the related credit card transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the related check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be empty or incomplete. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be empty or incomplete. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Defaults to USD when absent, null or empty; omitted for malformed explicit values. Do not assume a denomination when omitted.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"is_forced_confirmation":{"description":"Whether this PayPal transaction was recorded as a forced confirmation.","type":"boolean"},"paypal_disputes":{"items":{"type":"string","description":"20 character RevCent ID of the related PayPal dispute.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related PayPal dispute IDs; the selection may be empty or incomplete. Retrieve each dispute using GetPayPalDispute.","maxItems":50},"fraud_detection_requests":{"items":{"type":"string","description":"20 character RevCent ID of the related fraud detection request.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related fraud detection request IDs; the selection may be empty or incomplete. ","maxItems":50}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/paypal_transactions/search":{"get":{"summary":"Search PayPal Transactions","description":"Search PayPal transactions using a term or phrase. Returns up to 10 matches ordered by relevance, without pagination or a guarantee of finding every match.","operationId":"SearchPayPalTransactions","x-api-permission-description":"Allows the search of PayPal transactions.","x-api-permission":"paypal_transaction:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a PayPal transaction when you do not know the PayPal transaction ID and wish to retrieve the details of a specific PayPal transaction. Once a PayPal transaction has been found, use an individual search results' id property and the GetPayPalTransaction operation to retrieve the PayPal transaction details.<br><br>Important: If using the SearchPayPalTransactions and GetPayPalTransaction method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the PayPal transaction using a secondary non-provided value, such as the customer email in the GetPayPalTransaction response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchPayPalTransactions.md","tags":["PayPal Transactions"],"parameters":[{"name":"search_term","description":"Search term or phrase. Leading and trailing whitespace is ignored; blank terms are rejected. If repeated, the final value is used. No other query parameters are supported. Searches RevCent and PayPal transaction IDs, customer or billing/shipping names, first address lines, email, phone and metadata values.","in":"query","required":true,"schema":{"type":"string","examples":["Washington"]},"style":"form","x-additional-info":"When both single-value and nonempty multi-value query representations are supplied, the final multi-value search_term is used."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"PayPal transaction search matches and API call information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this API call was initiated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval, not the payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 PayPal transaction matches, ordered by relevance. May be empty or contain fewer than 10 results and does not necessarily include all matches. Pagination is not supported.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Associated customer's first address line, when available. May be an empty string or historical text.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Associated customer's second address line, when available. May be an empty string or historical text.","examples":["West Wing"]},"amount":{"type":"number","description":"Transaction amount in major currency units, without rounding. May be negative or fractional; omitted when unavailable or invalid. Currency is not included in search results. Use id with GetPayPalTransaction to obtain currency when available.","examples":[0]},"city":{"type":"string","description":"Associated customer's city, when available. May be an empty string or historical text.","examples":["Washington"]},"created_date_unix":{"description":"When the transaction was created in RevCent, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"description":"20 character RevCent ID of the associated customer; omitted when unavailable or invalid.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"email":{"type":"string","format":"email","description":"Associated customer email address; omitted when unavailable or invalid.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"Associated customer's first name, when available. May be an empty string or historical text.","examples":["George"]},"highlights":{"description":"Available matching context for the listed public fields; omitted when no public highlights are available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","last_name","metadata","paypal_transaction_id","phone"],"description":"Public search field containing the highlighted passage.","examples":["last_name"]},"values":{"type":"array","description":"Matching text fragments within the passage. May be empty.","items":{"type":"string","examples":["Washington"],"description":"One matching text fragment."}},"score":{"type":"number","description":"Optional relevance score for this passage, distinct from the result score. Not limited to 0–1; omitted when unavailable or invalid.","examples":[0]},"full_text":{"type":"string","description":"Available context snippet for a metadata match. Returned only when field is metadata; it may be absent from the limited metadata array and is not necessarily the complete metadata text.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array"},"id":{"description":"20 character RevCent ID of the matching PayPal transaction. Use it with GetPayPalTransaction to request fuller details and currency when available.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"item_type":{"type":"string","const":"paypal_transaction","description":"Resource type of this result; always paypal_transaction.","examples":["paypal_transaction"]},"last_name":{"type":"string","description":"Associated customer's last name, when available. May be an empty string or historical text.","examples":["Washington"]},"metadata":{"maxItems":50,"description":"Up to 50 available transaction metadata name/value pairs, preserving text and order. May be empty or omitted and may not include all metadata.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name, from 1 to 100 characters.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value, from 1 to 255 characters.","examples":["mystore.com"]}}},"type":"array"},"paypal_transaction_id":{"description":"The separate transaction identifier assigned by PayPal. Available text may be empty; omitted when unavailable or invalid.","type":"string","examples":["XXXXXXXXXXXX"]},"phone":{"type":"string","description":"Associated customer's phone number, when available. May be an empty string or historical text.","examples":["1234567890"]},"score":{"type":"number","description":"Result relevance score; higher values indicate a closer match. Scores are not limited to 0–1. Defaults to 1 when absent; null or invalid values are omitted.","examples":[7.68]},"state":{"type":"string","description":"Associated customer's state or province, when available. May be an empty string or historical text.","examples":["DC"]},"url":{"type":"string","format":"uri","description":"Link to the RevCent transaction details page for the transaction identified by id.","examples":["https://revcent.com/user/paypal-transaction-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Associated customer's ZIP or postal code, when available. May be an empty string or historical text.","examples":["20500"]}},"description":"A PayPal transaction search summary. Customer fields are optional and omitted independently when unavailable. Search context may differ from the returned customer details."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/payment_profiles":{"get":{"summary":"Get Payment Profiles","description":"Retrieve payment-profile summaries for the account, newest first. Use a returned id with GetPaymentProfile to retrieve its configuration, including payment_flow.","operationId":"GetPaymentProfiles","x-api-permission-description":"Allows the retrieval of payment profiles.","x-api-permission":"payment_profile:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile","x-kb-name":"Payment Profiles","x-md-link":"markdown/mcp/operation/GetPaymentProfiles.md","tags":["Payment Profiles"],"parameters":[{"description":"Maximum payment profiles per page, from 1 to 25. Required; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of payment-profile summaries and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of payment profiles in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"When the payment profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the payment profile. Use it with GetPaymentProfile to retrieve its configuration.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"Payment profile name, returned with its original text and whitespace.","type":"string","examples":["My Payment Profile"]},"description":{"description":"Optional payment profile description. May be an empty string; omitted when unavailable.","type":"string","examples":["My payment profile."]},"enabled":{"description":"Whether the payment profile is enabled. Disabled profiles are included in this list.","type":"boolean","examples":[true]},"updated_date_unix":{"description":"When the payment profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Payment-profile summaries for this page. Retrieve configuration using GetPaymentProfile."},"total_count":{"description":"The total number of available payment profiles for the account.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The number of result pages calculated using total_count and the required limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Payment Profile","description":"Create a Payment Profile, which will issue a unique Payment Profile ID.","operationId":"CreatePaymentProfile","x-api-permission-description":"Allows the creation of payment profiles.","x-api-permission":"payment_profile:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile","x-kb-name":"Payment Profiles","x-md-link":"markdown/mcp/operation/CreatePaymentProfile.md","tags":["Payment Profiles"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Payment Profile name. Must be unique from other Payment Profile names.","examples":["Example"]},"description":{"type":"string","description":"The Payment Profile description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Payment Profile is enabled."},"payment_flow":{"type":"array","description":"The flow is an array of nodes that the payment profile will go through when triggered. Each node has a type, content and settings. The type determines the kind of node it is and the content provides the necessary information for that node. Inputs and outputs determine the flow, i.e. connecting nodes via node ID's. A payment flow should have at a minimum 3 types of nodes in order to process payment: A 'start_payment_request' type node to begin the flow, an 'action_choose_gateway' type node to select a payment gateway, and an 'action_process_payment' type node to complete the payment. Note: Only one 'start_payment_request' node can be present in a payment flow. Flows contain at most 250 nodes, including disconnected draft nodes. Each node allows at most 100 incoming and 100 outgoing connections; the outgoing limit is combined across all ports.","items":{"description":"A payment-flow node. Common fields are defined once; the required type selects one set of node-specific settings and port rules. Node IDs must be unique within the flow; connected node IDs, reciprocal links, required flow-wide nodes and account-owned references are additionally validated by the API. Connections select one main continuation, not parallel execution of every connected node. Connected metadata actions run first as side actions. Main-node precedence is abort, filters, custom function, then process payment and choose gateway; filters place choose gateway before process payment, and start never routes directly to process payment. Filters are considered by ascending numeric filter_priority, then connection order; the first passing filter is chosen, otherwise the first failed filter with a continuation. Payment processing requires a selected gateway. Approval is terminal. Execution stops before node 50 and allows at most three payment attempts. Sales, subscription renewals and trial expirations share these rules when routed through a flow profile. Direct gateway and wallet-origin routing bypass the flow. Disconnected nodes and disconnected branches may be saved intentionally for future use. They are preserved during edits and do not execute unless reached from the selected flow path. Reachability from start is not required for saving a node. All declared node settings and connections must still satisfy their ordinary validation rules.","oneOf":[{"properties":{"type":{"const":"start_payment_request","examples":["start_payment_request"]},"node_settings":{"type":"object","description":"The settings specific to a 'start_payment_request' node type. This is the initial node in a next-gen payment profile flow that triggers when a payment profile is initiated.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"inputs":{"additionalProperties":false,"properties":{}},"outputs":{"additionalProperties":false,"properties":{"output_1":{}}}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_attempt_count","examples":["filter_attempt_count"]},"node_settings":{"allOf":[{"type":"object","description":"Filters by the attempt count for the sale or subscription renewal being processed. Compare the count using the selected greater-than-or-equal or less-than-or-equal condition. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically. This differs from filter_process_payment_count, which counts payment-processing attempts within the current flow.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on attempt count being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"attempt_count":{"type":"string","description":"The number of attempts used in the filter condition. Should be an integer value in string format, e.g. '3'.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","attempt_count"],"propertyNames":{"maxLength":80}},{"properties":{"attempt_count":{"type":"string","description":"Ordinary decimal string representing a whole number of at least 1. Leading zeros, a leading plus sign and surrounding whitespace are allowed. A fractional part may contain only zeros. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_bin_profile","examples":["filter_bin_profile"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_bin_profile' node type. The BIN profile filter allows you to filter based on the first 6 of the current credit card being used for the payment request via BIN profile. You have the option to filter on whether a card BIN is within a BIN profile, not within a BIN profile, or both.","additionalProperties":false,"properties":{"in_bin_profile":{"type":"array","description":"If the request is IN any of the specified BIN profile(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_bin_profile":{"type":"array","description":"If the request is NOT IN any of the specified BIN profile(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_bin_profile"],"properties":{"in_bin_profile":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_bin_profile"],"properties":{"nin_bin_profile":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_campaign","examples":["filter_campaign"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_campaign' node type. The campaign filter allows you to filter based on the campaign associated with the request. You have the option to filter on whether the request is associated with a campaign, not associated with a campaign, or both.","additionalProperties":false,"properties":{"in_campaign":{"type":"array","description":"If the request is IN any of the specified campaign(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_campaign":{"type":"array","description":"If the request is NOT IN any of the specified campaign(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_campaign"],"properties":{"in_campaign":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_campaign"],"properties":{"nin_campaign":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_card_type","examples":["filter_card_type"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_card_type' node type. The card type filter allows you to filter based on the card type being used to process payment. You have the option to filter on whether the card type is one or more types, is not one or more types, or both.","additionalProperties":false,"properties":{"in_card_type":{"type":"array","description":"If the request is IN any of the specified card type(s). Should be a lowercase string representing the card type.","items":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"],"maxLength":2000,"examples":["visa"]},"maxItems":100},"nin_card_type":{"type":"array","description":"If the request is NOT IN any of the specified card type(s). Should be a lowercase string representing the card type.","items":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"],"maxLength":2000,"examples":["visa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_card_type"],"properties":{"in_card_type":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_card_type"],"properties":{"nin_card_type":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_currency","examples":["filter_currency"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_currency' node type. The currency filter allows you to filter based on the currency associated with the request. You have the option to filter on whether the currency is, is not, or both.","additionalProperties":false,"properties":{"in_currency":{"type":"array","description":"If the request is IN any of the specified currency(ies). Should be a lowercase 3 letter ISO 4217 currency string.","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_currency":{"type":"array","description":"If the request is NOT IN any of the specified currency(ies). Should be a lowercase 3 letter ISO 4217 currency string.","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_currency"],"properties":{"in_currency":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_currency"],"properties":{"nin_currency":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_customer_group","examples":["filter_customer_group"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_customer_group' node type. The customer group filter allows you to filter based on the customer group(s) of the customer associated with the request. You have the option to filter based on whether a customer is in a customer group, not in a customer group, or both.\nImportant: This should be used as a historical filter for pre-existing customers. Customer groups do not apply to customers instantly.\n\nCaveats:\n\nIt may take up to 15 minutes after the customers' most recent action for the applicable customer group(s) to be applied/removed.\nIf a customer recently attempted to purchase, recently received a refund, etc., qualifying customer group(s) may not be applied or removed for at least 15 minutes\nIf you recently changed one or more customer groups' settings, all past customers are not refreshed to reflect updates to any of their customer group(s) until 2:00am EST each day.","additionalProperties":false,"properties":{"in_customer_group":{"type":"array","description":"If the customer associated with the request is IN any of the specified customer group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_customer_group":{"type":"array","description":"If the customer associated with the request is NOT IN any of the specified customer group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_customer_group"],"properties":{"in_customer_group":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_customer_group"],"properties":{"nin_customer_group":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_gateway_response","examples":["filter_gateway_response"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_gateway_response' node type. The gateway response filter allows you to filter based on the most recent response received from a gateway in the current payment request. This is a case insensitive match. Provide one or more terms which must be contained in the gateways response in order for the filter to pass.","additionalProperties":false,"properties":{"matching_terms":{"type":"array","description":"The terms to match on the gateway response. If any of the terms provided in this array are contained in the gateway response, the filter will pass. Matching is case insensitive.","items":{"type":"string","description":"A term to match on the gateway response.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["matching_terms"],"propertyNames":{"maxLength":80}},{"properties":{"matching_terms":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_metadata","examples":["filter_metadata"]},"node_settings":{"allOf":[{"type":"object","description":"Filters metadata from the selected source by whether it has or does not have the specified name/value entries. Payment Request refers to metadata supplied in the current sale-payment request, including pending-sale processing and existing-sale retries.","additionalProperties":false,"properties":{"source":{"type":"string","description":"The source of the metadata to filter on.\nCustomer: Any metadata contained in the customer related to the entity being processed.\nGateway: The current gateway chosen, prior to processing payment, if one has been chosen.\nPayment Request: Metadata supplied in the current sale-payment request (initial_sale), including pending-sale processing and existing-sale retries.\nSale: Any metadata contained in the sale related to the entity being processed.\nSubscription: Applies to subscription renew request type only.\nTrial: Applies to trial expire request type only.","enum":["customer","gateway","payment_request","sale","subscription","trial"],"maxLength":2000,"examples":["customer"]},"choice":{"type":"string","description":"Select whether to filter based on the selected source having (has) or not having (not_has) filter_metadata names/values.","enum":["has","not_has"],"maxLength":2000,"examples":["has"]},"filter_metadata":{"type":"array","description":"The metadata name value pairs to filter on, used in conjunction with the source and choice fields.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The name of the metadata to filter on. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 2000 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":2000,"minLength":1,"example":"customer_segment"},"value":{"type":"string","description":"The value of the metadata to filter on. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 2000 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":2000,"minLength":1,"example":"returning_customer"}},"required":["name","value"],"propertyNames":{"maxLength":80}},"maxItems":100,"minItems":1},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["source","choice","filter_metadata"],"propertyNames":{"maxLength":80}},{"properties":{"filter_metadata":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_payment_amount","examples":["filter_payment_amount"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_payment_amount' node type. The payment amount filter allows you to filter based on the payment amount that is to be processed. You have the option to filter whether the amount is less than or equal to, or greater than or equal to a certain amount.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on payment amount being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"payment_amount":{"type":"string","description":"The payment amount to be processed, used in conjunction with the choice field to determine the filter condition. This should be a float in string format. For example, if the amount to be processed is $10.50, this field should be '10.50'.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","payment_amount"],"propertyNames":{"maxLength":80}},{"properties":{"payment_amount":{"type":"string","description":"Ordinary decimal string representing a number of at least 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_process_payment_count","examples":["filter_process_payment_count"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_process_payment_count' node type. The process payment count filter allows you to filter based on the number of Process Payment nodes executed in the current flow request. I.e. the number of times that payment was attempted already in the request. You have the option to filter whether the process payment count is less than or equal to, or greater than or equal to a certain number.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on process payment count being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"process_count":{"type":"string","description":"The number of times the current flow has processed the payment, used in conjunction with the choice field to determine the filter condition. This should be an integer in string format.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","process_count"],"propertyNames":{"maxLength":80}},{"properties":{"process_count":{"type":"string","description":"Ordinary decimal string representing a whole number of at least 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. A fractional part may contain only zeros. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_product_group","examples":["filter_product_group"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_product_group' node type. The product group filter allows you to filter based on the product(s) contained in a product group associated with the request. You have the option to filter on whether a product is in a product group, not in a product group, or both.","additionalProperties":false,"properties":{"in_product_group":{"type":"array","description":"If all products related to the payment request are IN the specified product group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_product_group":{"type":"array","description":"If any products related to the payment request are NOT IN the specified product group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_product_group"],"properties":{"in_product_group":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_product_group"],"properties":{"nin_product_group":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_request_type","examples":["filter_request_type"]},"node_settings":{"allOf":[{"type":"object","description":"Filters the current payment-flow request by type. The three supported types are initial_sale, subscription_renew and trial_expire. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically. subscription_renew identifies subscription renewal payments; trial_expire identifies trial expiration payments. Matching requests continue through output_1; nonmatching requests continue through output_2.","additionalProperties":false,"properties":{"in_request_type":{"type":"array","description":"Include the selected payment request types. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","enum":["initial_sale","subscription_renew","trial_expire"],"maxLength":2000,"examples":["initial_sale"]},"maxItems":100},"nin_request_type":{"type":"array","description":"Exclude the selected payment request types. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","enum":["initial_sale","subscription_renew","trial_expire"],"maxLength":2000,"examples":["initial_sale"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_request_type"],"properties":{"in_request_type":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_request_type"],"properties":{"nin_request_type":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"properties":{"type":{"const":"filter_merge_filters","examples":["filter_merge_filters"]},"node_settings":{"type":"object","description":"The settings specific to a 'filter_merge_filters' node type. This node allows for filtering based on the merge filters within the payment profile flow.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"All child conditions on output_3 passed."},"output_2":{"description":"At least one child condition failed, or no child filters exist."},"output_3":{"description":"Filter dependencies only. Nested merges are supported; self references, cycles and non-filter children are rejected by the API."}},"description":"output_3 lists child filters combined with AND; it is not a continuation. At least one child must exist for the merge to pass. All children must pass for output_1; otherwise output_2 is selected. Child continuation ports are ignored during the merge evaluation. Only filter nodes may be children, including nested merges. Merge dependencies must be acyclic. These cross-node rules are checked by the API on create/edit and before stored-flow execution. An empty merge is allowed as a draft and evaluates false."}}},{"properties":{"type":{"const":"action_abort_flow","examples":["action_abort_flow"]},"node_settings":{"type":"object","description":"The settings specific to an 'action_abort_flow' node type. Payment flow will be aborted. Use this node if you want to stop the flow and return an error. If a payment has been attempted previously during the flow the decline results will be returned, else an error will be returned. Note: The payment profiles' settings for kill terms and max attempts, if enabled, will still apply. You can use an 'action_custom_function' node prior to 'action_abort_flow' to generate a more detailed custom error based on decline response after an 'action_process_payment' node has run.","additionalProperties":false,"properties":{"custom_error":{"type":"string","description":"A custom error message to be returned when the flow is aborted.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{},"description":"There are no outputs for the 'action_abort_flow' node type. Once this node is reached, the flow is terminated and flow results are returned immediately."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_choose_gateway","examples":["action_choose_gateway"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to an 'action_choose_gateway' node type. These settings determine the source and method of how a gateway is chosen when a payment profile flow reaches an 'action_choose_gateway' node. Chooses a gateway to be used to process a payment request. Read more at <a href=\"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#choose-a-gateway\" target=\"_blank\">https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#choose-a-gateway</a>.","additionalProperties":false,"properties":{"selection_source":{"type":"string","description":"Specifies the gateway-selection source. Gateway: select from the configured gateway IDs. Gateway Group: select from the configured gateway groups. Gateway Last Approved / Gateway Last Declined: start with the customer's most recently approved or declined gateway. Revenue and time rules still apply; a historical transaction does not grant an exemption. If that source provides no eligible gateway, the configured failsafe may be selected. Gateway history and preference never by themselves ignore revenue or time rules.","enum":["gateway","gateway_group","gateway_last_approved","gateway_last_declined"],"maxLength":2000,"examples":["gateway"]},"selection_method":{"type":"string","description":"Specifies the method of gateway selection.\nEvenly Distribute: Process valid gateways by even distribution of total captured payment volume within the past 24 hours.\nRandom: Will pick a random gateway from the list of gateways from selected gateways/gateway groups.\nProcess gateways in the sort order, beginning with the next gateway after the last transaction gateway used in the sort order. Applies to Gateway source only.\nProcess valid gateways in the sort order within the list of selected gateways, always starting with gateway 1.\nApplies to 'gateway' or 'gateway_group' sources only. Recommended value is 'evenly_distribute' to ensure gateways are being chosen in a way that limits overuse of a single gateway.","enum":["evenly_distribute","round_robin","sort_order","random"],"maxLength":2000,"examples":["evenly_distribute"]},"gateways":{"type":"array","description":"An array of gateways RevCent will choose from when the selection source is 'gateway'. When the selection source is 'gateway', provide an array of gateway IDs.","items":{"type":"object","additionalProperties":false,"properties":{"order":{"description":"The order in which the gateway will be selected in relation to the other gateways in the array. Note: orders are 0 indexed, i.e. the first gateway is order 0. The gateway with the lowest order value will be selected first. Order only truly applies when the selection method is 'sort_order' or 'round_robin', however the 'order' property is still required.","type":"integer","examples":[0]},"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"required":["order","id"],"propertyNames":{"maxLength":80}},"maxItems":100},"gateway_groups":{"type":"array","description":"An array of gateway groups to choose from when the selection source is 'gateway_group'. RevCent will utilize all enabled gateways within the gateway groups selected.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"prefer_gateway":{"type":"array","description":"Select one or more conditions in which a gateway should be preferred. CVV Bonus is if a gateway was used in an initial sale where the CVV was passed.\nPreviously Approved for Entity: Give a gateway preference if it has already been successful for the current sale, subscription or trial.\nPreviously Approved for Customer (CVV Bonus): Give a gateway preference if it has already been successful for the current customer. In addition, give the gateway a greater preference if it was previously successful when including CVV.\nPreviously Declined for Entity: Give a gateway preference if it has already been declined for the current sale, subscription or trial. Useful for retrying declined MID's when the customer needs to contact their bank.\nPreviously Declined for Customer (CVV Bonus): Give a gateway preference if it has already been declined for the current customer. In addition, give the gateway a greater preference if it was previously declined when including CVV.\n\nTerminology:\nEntity: The current sale, subscription, or trial being processed according to the request type.\nCustomer: The customer related to the current request.\n\nPreference ranks eligible gateways only. Ordinary approved/declined customer history contributes preference even without CVV; matching CVV history provides an additional bonus. Preference does not override revenue or time rules and does not make an ineligible gateway eligible.","items":{"type":"string","enum":["approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"],"maxLength":2000,"examples":["approved_for_entity"]},"maxItems":100},"not_if_gateway":{"type":"array","description":"Select one or more conditions in which a gateway should not be chosen.\nPreviously Declined In Current Request (used_in_request): If the gateway has been declined in the current flow request, do not choose it.\nPreviously Declined For Entity (declined_for_entity): If the gateway has been declined at any point in the entity's history do not choose it.\nPreviously Declined for Customer (declined_for_customer): If the gateway has been declined at any point in the customers' history, do not choose it.\nPreviously Approved For Entity (approved_for_entity): If the gateway has been approved at any point in the entity's history do not choose it.\nPreviously Approved for Customer (approved_for_customer): If the gateway has been approved at any point in the customers' history, do not choose it.\n\nTerminology:\nCurrent Request: The current flow request.\nEntity: The current sale, subscription, or trial being processed according to the request type.\nCustomer: The customer related to the current request.","items":{"type":"string","enum":["used_in_request","approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"],"maxLength":2000,"examples":["used_in_request"]},"maxItems":100},"nin_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which a chosen gateway cannot not be in.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"declined_for_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which once a decline has occurred for any gateways within the group, no gateways in the same group can be chosen.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"approved_for_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which once an approval has occurred for any gateways within the group, no gateways in the same group can be chosen.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"ignore_settings":{"type":"array","description":"Select one or more settings to ignore when choosing a gateway. This is an advanced option. This can be used to provide exceptions to certain rules you have set up in your revenue rules and time rules for a specific gateway. For example, if you have a revenue rule that prevents a gateway from being chosen if it has captured over $10,000 in the past 24 hours, but you want to allow that gateway to be chosen regardless of that rule if it was previously approved for the customer, you can select 'revenue_rules' to be ignored.","items":{"type":"string","enum":["revenue_rules","time_rules","corp_lock"],"maxLength":2000,"examples":["revenue_rules"]},"maxItems":100},"smart_bin_enabled":{"type":"string","description":"You can use SmartBin to choose the best gateway during the gateway choice process within the source gateways or gateways within source gateway groups. The SmartBin feature gives you the ability to have payments automatically routed to the gateway that has the highest statistical likelihood of success. I.e. increase approvals by using the gateway most likely to approve a specific customers' credit card.\n\nNote: SmartBin is an extra charge per month. You must contact RevCent first in order to enable SmartBin for your account. Read more about SmartBin at <a href=\"https://kb.revcent.com/payments/credit-card/smartbin\" target=\"_blank\">https://kb.revcent.com/payments/credit-card/smartbin</a>.\n\nWhen you should use SmartBin:\nYou have more than one gateway available to process initial sales.\nYou approval rates vary greatly based on issuer and gateway chosen.\n\nWhen you should not use SmartBin:\nYou have only one gateway processing initial sales.\nYou approval rates are high regardless of issuer and gateway.\n\nWhen SmartBin is not triggered:\nA Prefer Gateway If condition is met, giving one or more gateway(s) in the choice process produce a prefer score.\nSubscription profile prefer settings outside of this profile produce a prefer score.\nTrial prefer settings outside of this profile produce a prefer score.\nOnly one gateway is available to process at time of payment.","enum":["true","false"],"maxLength":2000,"examples":["true"]},"modify_amount_option":{"type":"string","description":"If you want to decrease the payment amount before processing. This is an advanced option. Default is nomodify. Will only apply to additional payment attempts during a payment flow, i.e. will be ignored for the first payment attempt.\n\nOptions:\n'nomodify': Do not modify the original transaction amount.\n'modifypct': Modify the original transaction amount by a percentage decrease, the percentage value being the modify_amount_value property.\n'modifyspf': Modify the original transaction amount by a fixed dollar amount decrease. The fixed amount being the modify_amount_value property.","enum":["nomodify","modifypct","modifyspf"],"maxLength":2000,"examples":["nomodify"]},"modify_amount_value":{"type":"string","description":"The value to modify the amount if 'modifypct' or 'modifyspf' is chosen. This is an advanced option. For example, if 'modifypct' is chosen and the value is '10', the transaction amount will be decreased by 10%. If 'modifyspf' is chosen and the value is '5', the transaction amount will be decreased by $5.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"string","description":"Do you want to swap to another card if one is available? Will only apply to additional payment attempts during a payment flow, i.e. will be ignored for the first payment attempt. Note: Applies only to subscription renewal and trial expiration requests, not sale requests.","enum":["false","true"],"maxLength":2000,"examples":["false"]},"failsafe_gateway":{"type":"string","description":"The gateway ID of the failsafe gateway. The failsafe gateway is the gateway that RevCent will default to if all other gateways provided in the settings are unable to be chosen according to the selection source and selection method settings. Providing a failsafe gateway is highly recommended to ensure that there is always a gateway available to process transactions when reaching an 'action_choose_gateway' node in the flow.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["selection_source"],"propertyNames":{"maxLength":80}},{"allOf":[{"if":{"properties":{"selection_source":{"const":"gateway"}},"required":["selection_source"],"propertyNames":{"maxLength":80}},"then":{"required":["selection_method","gateways"],"properties":{"gateways":{"minItems":1}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"selection_source":{"const":"gateway_group"}},"required":["selection_source"],"propertyNames":{"maxLength":80}},"then":{"required":["selection_method","gateway_groups"],"properties":{"gateway_groups":{"minItems":1}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"modify_amount_option":{"const":"modifypct"}},"required":["modify_amount_option"],"propertyNames":{"maxLength":80}},"then":{"required":["modify_amount_value"],"properties":{"modify_amount_value":{"type":"string","description":"Ordinary decimal string representing a percentage greater than 0 and less than 100. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"modify_amount_option":{"const":"modifyspf"}},"required":["modify_amount_option"],"propertyNames":{"maxLength":80}},"then":{"required":["modify_amount_value"],"properties":{"modify_amount_value":{"type":"string","description":"Ordinary decimal string representing a number greater than 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"Continuation after selection success or a handled selection miss; payment requires an available selected gateway."}},"description":"Gateway selection uses output_1 after either successful selection or a handled selection failure. A process-payment node is eligible only while a gateway is selected. A selection miss can therefore continue to another eligible filter, custom function, abort or gateway-selection node; if no eligible continuation exists, the flow ends."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_insert_metadata","examples":["action_insert_metadata"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to an 'insert_metadata' node type. This node allows for the insertion of metadata within the payment profile flow. The insert metadata node is unique in that it does not have an output. It is a side action meant to be conducted along with the execution of other filter or action nodes.","additionalProperties":false,"properties":{"metadata_target":{"type":"array","description":"The target(s) of where the metadata will be inserted. You can choose to insert metadata to the customer, sale, subscription, subscription_renewal, or trial related to the payment profile flow.","items":{"type":"string","enum":["customer","sale","subscription","subscription_renewal","trial"],"maxLength":2000,"examples":["customer"]},"maxItems":100,"minItems":1},"metadata":{"type":"array","description":"The metadata name value pairs to be inserted to the target specified in the metadata_target setting.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name to be inserted. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 100 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":100,"minLength":1,"example":"customer_segment"},"value":{"type":"string","description":"The metadata value to be inserted. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 255 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":255,"minLength":1,"example":"returning_customer"}},"required":["name","value"],"propertyNames":{"maxLength":80}},"maxItems":100,"minItems":1},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["metadata_target","metadata"],"propertyNames":{"maxLength":80}},{"properties":{"metadata":{"minItems":1},"metadata_target":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{},"description":"There are no outputs for the 'action_insert_metadata' node type. It is run 'on the side' of the main flow and does not affect the flow path. Simply connect to the output of a separate node when you wish to insert metadata, make sure the previous node has another output routing to ensure flow continuation. This node is used solely for inserting metadata and does not influence the flow path, thus it has no outputs to connect to other nodes."}}},{"properties":{"type":{"const":"action_process_payment","examples":["action_process_payment"]},"node_settings":{"type":"object","description":"The settings specific to an 'action_process_payment' node type. This node handles the processing of a payment within the flow.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{"output_1":{"properties":{"connections":{"maxItems":0}},"description":"Reserved empty port. Approval ends the flow; no connected actions, including metadata, are executed."},"output_2":{"description":"Definitive-decline continuation only, subject to kill terms and the three-attempt limit. Provider errors and ambiguous outcomes stop the flow."}},"description":"Payment approval ends the flow immediately. output_1 is retained only as an optional empty editor port; it cannot contain connections. output_2 may continue only after a definitive decline, unless a kill term or the three-payment-attempt limit stops the flow. Provider errors and ambiguous outcomes are terminal and never follow a retry branch."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_custom_function","examples":["action_custom_function"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'custom_function' node type. You can choose to run a function during a payment flow. The function can return a specific response, or can run separately without interrupting the payment flow. It is HIGHLY recommended to read this section to understand using a function in a payment flow: <a href=\"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#run-function\" target=\"_blank\">https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#run-function</a>","additionalProperties":false,"properties":{"custom_function":{"type":"string","description":"The ID of the custom function to be executed when the flow reaches this node. Read more on setting up a custom function here: <a href=\"https://kb.revcent.com/integrations/functions\" target=\"_blank\">https://kb.revcent.com/integrations/functions</a>.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"run_method":{"type":"string","description":"wait_for_response invokes the function once and waits up to custom_function_timeout milliseconds, defaulting to 5000 when omitted. A usable response may control routing; failure, timeout or an empty response follows output_2. queue_continue submits the function separately and follows output_1 without waiting for its response, including on queue delivery failure. custom_function_timeout is ignored in queue_continue mode. Connect a failure continuation if the flow should proceed after a synchronous failure.","enum":["wait_for_response","queue_continue"],"maxLength":2000,"examples":["wait_for_response"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"custom_function_timeout":{"type":"string","description":"Optional timeout in milliseconds for wait_for_response. Use an ordinary decimal string greater than 500 and no greater than 8000; omission defaults to 5000 milliseconds (5 seconds). Scientific/hexadecimal notation is not accepted. At execution precision the value must remain greater than 500. On timeout the function is not retried and output_2 is followed. In queue_continue mode the setting is retained but does not wait for or limit the separately queued function.","default":"5000","maxLength":2000}},"propertyNames":{"maxLength":80}},{"required":["custom_function","run_method"],"properties":{"custom_function":{"minLength":20,"maxLength":20}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"Default usable-response path in wait mode; queue-and-continue path even if delivery fails."},"output_2":{"description":"Wait-mode failure, timeout or empty response, or an explicit function-selected output. Unavailable function dependencies also use this path."}},"description":"In wait_for_response mode, a usable response selects output_1 by default, may select output_2, or may select a directly connected non-metadata node. Failure, timeout or an empty response follows output_2. In queue_continue mode, output_1 is followed without waiting for the function response, including when queue delivery fails. No automatic function retry is made."}}}],"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","description":"Unique node ID within this flow: 1–80 ASCII letters, digits, underscores or hyphens. Connections refer to this exact ID; surrounding whitespace is not accepted.","minLength":1,"maxLength":80,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","description":"Selects the node-specific settings and permitted input/output ports below.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"inputs":{"type":"object","description":"The nodes that are inputs into the current node. These determine the previous nodes in the flow that lead to this node. This applies to all node types except the start_payment_request node. An empty object is also valid when no connections have been supplied. Omitting the optional connection object has the same effect.","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"required":["connections"],"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","input"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3"],"examples":["output_1"]}}},"maxItems":100}}}}},"outputs":{"type":"object","additionalProperties":false,"description":"Outgoing ports. The node type determines which ports are supported and what each port means. At most 100 outgoing connections are allowed across all ports. Empty or omitted ports have no connections.","properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}},"output_2":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}},"output_3":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}}}},"position":{"type":"object","description":"Optional position in the flow editor, in pixels; it does not affect execution. Omitted coordinates receive defaults. Nodes are approximately 300 pixels wide and 400 pixels high.","additionalProperties":false,"properties":{"x_axis":{"type":"number","description":"Horizontal position in pixels, from -100000 through 100000. Fractional coordinates are allowed.","minimum":-100000,"maximum":100000,"examples":[0]},"y_axis":{"type":"number","description":"Vertical position in pixels, from -100000 through 100000. Fractional coordinates are allowed.","minimum":-100000,"maximum":100000,"examples":[0]}}},"node_settings":{}}},"minItems":3,"maxItems":250},"kill_terms":{"type":"object","additionalProperties":false,"description":"You have the ability to cancel the payment profile flow if a declined transaction has specific terms/phrases/words in a step gateways' decline response.","properties":{"enabled":{"description":"Whether kill terms are enabled.","type":"boolean"},"terms":{"description":"An array of one or more kill terms. Kill terms are case-insensitive. This will also cancel/void the related sale being attempted. Only applies to initial sale attempts, not renewals or trial expirations.","type":"array","items":{"type":"string","description":"An individual kill term","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"max_attempts":{"type":"object","additionalProperties":false,"description":"You have the ability to cancel/void a sale if the number of declined payment profile attempts reaches a certain number.","properties":{"enabled":{"description":"Whether max attempts is enabled.","type":"boolean"},"num":{"description":"The number of declined payment attempts that triggers cancellation or voiding when Maximum Attempts is enabled. Optional, but must be a positive integer whenever supplied, including when enabled is false. To disable Maximum Attempts, supply enabled: false and omit num.","type":"integer","minimum":1,"example":3}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","payment_flow"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"Region code for the API call: 1 for the default region, 2 for the western United States, or 3 for the eastern United States.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/payment_profiles/{payment_profile_id}":{"get":{"summary":"Get A Payment Profile","description":"Retrieve a payment profile and its configured payment flow, kill terms and maximum-attempt settings.","operationId":"GetPaymentProfile","x-api-permission-description":"Allows the retrieval of payment profiles.","x-api-permission":"payment_profile:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile","x-kb-name":"Payment Profiles","x-md-link":"markdown/mcp/operation/GetPaymentProfile.md","tags":["Payment Profiles"],"parameters":[{"in":"path","name":"payment_profile_id","description":"20 character RevCent ID of the payment profile to retrieve.","required":true,"schema":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested payment profile and its available configuration.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the payment profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent ID of the requested payment profile.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"Payment profile name, returned with its original text and whitespace.","type":"string","examples":["My Payment Profile"]},"description":{"description":"Optional payment profile description. May be an empty string; omitted when unavailable.","type":"string","examples":["My payment profile."]},"enabled":{"description":"Whether the payment profile is enabled.","type":"boolean","examples":[true]},"payment_flow":{"type":"array","description":"The available payment-flow nodes. May be empty when no usable flow is available. Connections refer to node IDs; array order alone does not determine execution order.","items":{"type":"object","additionalProperties":false,"description":"A payment-flow node and its available configuration.","properties":{"id":{"type":"string","description":"Identifier of this node within the payment flow. Connections use this identifier to refer to the node.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","enum":["start_payment_request","action_choose_gateway","action_process_payment","action_custom_function","action_insert_metadata","action_abort_flow","filter_merge_filters","filter_gateway_response","filter_request_type","filter_product_group","filter_payment_amount","filter_process_payment_count","filter_attempt_count","filter_customer_group","filter_campaign","filter_bin_profile","filter_card_type","filter_currency","filter_metadata"],"description":"The node's operation or filter type.","examples":["start_payment_request","filter_attempt_count","filter_bin_profile","filter_campaign","filter_card_type","filter_currency","filter_customer_group","filter_gateway_response","filter_metadata","filter_payment_amount","filter_process_payment_count","filter_product_group","filter_request_type","filter_merge_filters","action_abort_flow","action_choose_gateway","action_insert_metadata","action_process_payment","action_custom_function"]},"inputs":{"type":"object","additionalProperties":false,"description":"Available incoming connections. start_payment_request returns an empty object. Other node types may expose input_1; missing ports and empty connection arrays are valid.","properties":{"input_1":{"type":"object","additionalProperties":false,"description":"An available connection port.","properties":{"connections":{"type":"array","description":"Available connections, preserving order and duplicates. May be empty.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","description":"The source output-port label. Historical nonempty labels are preserved.","examples":["output_1","output_2","output_3"]}}}}}}}},"outputs":{"type":"object","additionalProperties":false,"description":"Available outgoing connections. Start and choose-gateway nodes may expose output_1; process-payment, custom-function and ordinary filter nodes may expose output_1/output_2; filter_merge_filters may also expose output_3. Insert-metadata and abort nodes return an empty object. Missing ports and empty connection arrays are valid.","properties":{"output_1":{"type":"object","additionalProperties":false,"description":"An available connection port.","properties":{"connections":{"type":"array","description":"Available connections, preserving order and duplicates. May be empty.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","description":"The destination input-port label. Historical nonempty labels are preserved.","examples":["input_1"]}}}}}},"output_2":{"type":"object","additionalProperties":false,"description":"An available connection port.","properties":{"connections":{"type":"array","description":"Available connections, preserving order and duplicates. May be empty.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","description":"The destination input-port label. Historical nonempty labels are preserved.","examples":["input_1"]}}}}}},"output_3":{"type":"object","additionalProperties":false,"description":"An available connection port.","properties":{"connections":{"type":"array","description":"Available connections, preserving order and duplicates. May be empty.","items":{"type":"object","additionalProperties":false,"description":"A connection to another node.","properties":{"node":{"type":"string","description":"The connected node ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","description":"The destination input-port label. Historical nonempty labels are preserved.","examples":["input_1"]}}}}}}}},"position":{"type":"object","additionalProperties":false,"description":"The optional node position in the visual workflow editor, in pixels. Position does not determine execution order.","properties":{"x_axis":{"type":"number","description":"Horizontal position in pixels.","examples":[100]},"y_axis":{"type":"number","description":"Vertical position in pixels.","examples":[100]}}},"node_settings":{"type":"object","additionalProperties":false,"description":"Available settings for this node; may be empty. Each field identifies its applicable node types. Saved text and numeric values can differ from current Create/Edit requirements. Use the request schema when changing a flow.","properties":{"node_note":{"type":"string","description":"An optional saved note for any node type. May be empty.","examples":["A note for the node."]},"selection_source":{"type":"string","description":"Used by action_choose_gateway. The gateway-selection source, such as gateway, gateway_group, gateway_last_approved or gateway_last_declined.","examples":["gateway","gateway_group","gateway_last_approved","gateway_last_declined"]},"selection_method":{"type":"string","description":"Used by action_choose_gateway. The selection method, such as random, round_robin, evenly_distribute or sort_order.","examples":["evenly_distribute","round_robin","sort_order","random"]},"gateways":{"type":"array","description":"Used by action_choose_gateway. Available configured gateway entries. Order and duplicates are preserved; an empty array does not establish that no gateways were configured.","items":{"type":"object","additionalProperties":false,"description":"A configured gateway and its order.","properties":{"id":{"type":"string","description":"The 20 character RevCent gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"order":{"type":"integer","description":"The saved gateway order, including historical zero or negative values.","examples":[0]}}}},"gateway_groups":{"type":"array","description":"Used by action_choose_gateway. Gateway groups used for selection. Available IDs preserve order and duplicates; may be empty.","items":{"type":"string","description":"A 20 character RevCent gateway-group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}},"nin_gateway_group":{"type":"array","description":"Used by action_choose_gateway. Gateway groups excluded from selection. Available IDs preserve order and duplicates; may be empty.","items":{"type":"string","description":"A 20 character RevCent gateway-group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}},"declined_for_gateway_group":{"type":"array","description":"Used by action_choose_gateway. Groups used to exclude gateways after a decline within a group. Available IDs preserve order and duplicates; may be empty.","items":{"type":"string","description":"A 20 character RevCent gateway-group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}},"approved_for_gateway_group":{"type":"array","description":"Used by action_choose_gateway. Groups used to exclude gateways after an approval within a group. Available IDs preserve order and duplicates; may be empty.","items":{"type":"string","description":"A 20 character RevCent gateway-group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]}},"prefer_gateway":{"type":"array","description":"Used by action_choose_gateway. Gateway preference conditions, such as approved_for_entity or approved_for_customer. Order and duplicates are preserved.","items":{"type":"string","description":"A saved selection value.","examples":["approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"]}},"not_if_gateway":{"type":"array","description":"Used by action_choose_gateway. Gateway exclusion conditions, such as used_in_request or declined_for_entity. Order and duplicates are preserved.","items":{"type":"string","description":"A saved selection value.","examples":["used_in_request","approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"]}},"ignore_settings":{"type":"array","description":"Used by action_choose_gateway. Settings selected for exceptions, such as revenue_rules, time_rules or corp_lock. Order and duplicates are preserved.","items":{"type":"string","description":"A saved selection value.","examples":["revenue_rules","time_rules","corp_lock"]}},"smart_bin_enabled":{"type":["string","boolean"],"description":"Used by action_choose_gateway. The SmartBin selection flag. Current settings use the strings true/false; historical strings and boolean flags are preserved.","examples":["true","false"]},"swap_card":{"type":["string","boolean"],"description":"Used by action_choose_gateway. The card-swap selection flag. Current settings use the strings true/false; historical strings and boolean flags are preserved.","examples":["false","true"]},"modify_amount_option":{"type":"string","description":"Used by action_choose_gateway. The amount adjustment option: normally nomodify, modifypct or modifyspf.","examples":["nomodify","modifypct","modifyspf"]},"modify_amount_value":{"type":["string","number"],"description":"Used by action_choose_gateway. The adjustment value: percentage points for modifypct or payment-currency major units for modifyspf. Returned as saved text or a number.","examples":["10"]},"failsafe_gateway":{"type":"string","description":"Used by action_choose_gateway. The 20 character RevCent ID of the fallback gateway, when available.","minLength":20,"maxLength":20,"examples":["MnjZpj4zK2IOOYE0AwBM"]},"custom_function":{"type":"string","description":"Used by action_custom_function. The 20 character RevCent Function ID. See https://kb.revcent.com/integrations/functions for Function integration guidance.","minLength":20,"maxLength":20,"examples":[{"type":"string","title":"Function ID","description":"A 20 character Function ID.","minLength":20,"maxLength":20,"examples":["jYJb58ZgOmfv5gNyOrJr"]}]},"custom_function_timeout":{"type":["string","number"],"description":"Used by action_custom_function. The configured response timeout in milliseconds, when available. Returned as saved text or a number."},"run_method":{"type":"string","description":"Used by action_custom_function. Normally wait_for_response waits for the function result and queue_continue continues without waiting.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"custom_error":{"type":"string","description":"Used by action_abort_flow. The saved explanation for aborting the flow; may be empty.","examples":["Payment was declined."]},"metadata_target":{"type":"array","description":"Used by action_insert_metadata. Targets commonly include customer, sale, subscription, subscription_renewal and trial. Historical target strings, order and duplicates are preserved.","items":{"type":"string","description":"A saved target name.","examples":["customer","sale","subscription","subscription_renewal","trial"]}},"metadata":{"type":"array","description":"Used by action_insert_metadata. Up to 100 available name/value pairs, preserving exact text, order and duplicates. Returns an empty array when unavailable.","items":{"type":"object","additionalProperties":false,"description":"A configured metadata name/value pair.","properties":{"name":{"type":"string","description":"The exact nonempty metadata name.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"The exact nonempty metadata value.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"examples":[{"name":"customer_type","value":"premium"}]},"maxItems":100},"filter_metadata":{"type":"array","description":"Used by filter_metadata with source and choice. Available nonempty name/value text up to 2,000 characters each is preserved exactly, including whitespace, order and duplicates. May be empty.","items":{"type":"object","additionalProperties":false,"description":"A configured metadata name/value pair.","properties":{"name":{"type":"string","description":"The exact nonempty metadata name.","minLength":1,"maxLength":2000,"examples":["Example"]},"value":{"type":"string","description":"The exact nonempty metadata value.","minLength":1,"maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"examples":[{"name":"customer_type","value":"vip"}]}},"source":{"type":"string","description":"Used by filter_metadata. The metadata source, normally customer, gateway, payment_request, sale, subscription or trial.","examples":["customer","gateway","payment_request","sale","subscription","trial"]},"choice":{"type":"string","description":"Used by filter_payment_amount, filter_process_payment_count and filter_attempt_count for gte/lte comparisons; used by filter_metadata for has/not_has matching.","examples":["gte","lte","has","not_has"]},"payment_amount":{"type":["string","number"],"description":"Used by filter_payment_amount. The comparison threshold in the payment currency's major units. Returned as saved text or a number.","examples":["10.50","20.00"]},"process_count":{"type":["string","number"],"description":"Used by filter_process_payment_count. The payment-processing count threshold. Returned as saved text or a number.","examples":["1","2"]},"attempt_count":{"type":["string","number"],"description":"Used by filter_attempt_count. The attempt-count threshold. Returned as saved text or a number.","examples":["3"]},"filter_priority":{"type":"string","description":"Used by filter nodes other than filter_merge_filters. The saved filter priority, including empty or historical text.","examples":["0","1"]},"matching_terms":{"type":"array","description":"Used by filter_gateway_response. Terms to match against the gateway response, preserving order, duplicates and historical text. May be empty.","items":{"type":"string","description":"A saved gateway-response matching term; may be empty.","examples":["pick up card","do not honor"]}},"in_product_group":{"type":"array","description":"Used by filter_product_group. Available IDs for the inclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}]}},"nin_product_group":{"type":"array","description":"Used by filter_product_group. Available IDs for the exclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent product group ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}]}},"in_customer_group":{"type":"array","description":"Used by filter_customer_group. Available IDs for the inclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent customer group ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}]}},"nin_customer_group":{"type":"array","description":"Used by filter_customer_group. Available IDs for the exclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent customer group ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]}]}},"in_campaign":{"type":"array","description":"Used by filter_campaign. Available IDs for the inclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent campaign ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}]}},"nin_campaign":{"type":"array","description":"Used by filter_campaign. Available IDs for the exclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent campaign ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}]}},"in_bin_profile":{"type":"array","description":"Used by filter_bin_profile. Available IDs for the inclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent bin profile ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}]}},"nin_bin_profile":{"type":"array","description":"Used by filter_bin_profile. Available IDs for the exclusion condition. Order and duplicates are preserved; empty output does not necessarily mean no condition was configured.","items":{"type":"string","description":"A 20 character RevCent bin profile ID.","minLength":20,"maxLength":20,"examples":[{"type":"string","title":"BIN Profile ID","description":"A 20 character BIN Profile ID.","minLength":20,"maxLength":20,"examples":["YMwYXfKjAvj0qYm0P12k"]}]}},"in_request_type":{"type":"array","description":"Used by filter_request_type. Inclusion values for request types, normally initial_sale, subscription_renew or trial_expire. Case, order and duplicates are preserved. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","description":"A saved filter value.","examples":["initial_sale","subscription_renew","trial_expire"]}},"nin_request_type":{"type":"array","description":"Used by filter_request_type. Exclusion values for request types, normally initial_sale, subscription_renew or trial_expire. Case, order and duplicates are preserved. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","description":"A saved filter value.","examples":["initial_sale","subscription_renew","trial_expire"]}},"in_card_type":{"type":"array","description":"Used by filter_card_type. Inclusion values for card types, such as visa or master-card. Case, order and duplicates are preserved.","items":{"type":"string","description":"A saved filter value.","examples":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"]}},"nin_card_type":{"type":"array","description":"Used by filter_card_type. Exclusion values for card types, such as visa or master-card. Case, order and duplicates are preserved.","items":{"type":"string","description":"A saved filter value.","examples":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"]}},"in_currency":{"type":"array","description":"Used by filter_currency. Inclusion values for currency codes, normally three-letter ISO 4217 codes. Case, order and duplicates are preserved.","items":{"type":"string","description":"A saved filter value.","examples":["usd","eur"]}},"nin_currency":{"type":"array","description":"Used by filter_currency. Exclusion values for currency codes, normally three-letter ISO 4217 codes. Case, order and duplicates are preserved.","items":{"type":"string","description":"A saved filter value.","examples":["usd","eur"]}}}}}}},"kill_terms":{"type":"object","additionalProperties":false,"description":"The payment profile's kill-term settings.","properties":{"enabled":{"type":"boolean","description":"Whether kill terms are enabled; false when unavailable.","examples":[false]},"terms":{"type":"array","description":"Saved terms used to stop further payment attempts. May be empty when no terms are available. Order and duplicates are preserved.","items":{"type":"string","description":"A saved matching term, preserving text including empty strings.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"max_attempts":{"type":"object","additionalProperties":false,"description":"The payment profile's maximum-attempt settings.","properties":{"enabled":{"type":"boolean","description":"Whether the maximum-attempt setting is enabled; false when unavailable.","examples":[false]},"num":{"type":"integer","description":"The saved maximum-attempt count, including historical zero or negative integers. Returns zero when unavailable or not an integer.","examples":[0]}}},"updated_date_unix":{"description":"When the payment profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Payment Profile","description":"Edit a previously created Payment Profile using the Payment Profile ID. Only supplied fields are updated.","operationId":"EditPaymentProfile","x-api-permission-description":"Allows the editing of payment profiles.","x-api-permission":"payment_profile:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile","x-kb-name":"Payment Profiles","x-md-link":"markdown/mcp/operation/EditPaymentProfile.md","tags":["Payment Profiles"],"parameters":[{"in":"path","name":"payment_profile_id","description":"The Payment Profile ID","required":true,"schema":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Payment Profile name. Must be unique from other Payment Profile names.","examples":["Example"]},"description":{"type":"string","description":"The Payment Profile description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Payment Profile is enabled."},"payment_flow":{"type":"array","description":"Supplying payment_flow replaces the entire existing flow. Include every node and connection you want to keep, including disconnected draft nodes. Omit payment_flow to leave the current flow unchanged. The flow is an array of nodes that the payment profile will go through when triggered. Each node has a type, content and settings. The type determines the kind of node it is and the content provides the necessary information for that node. Inputs and outputs determine the flow, i.e. connecting nodes via node ID's. A payment flow should have at a minimum 3 types of nodes in order to process payment: A 'start_payment_request' type node to begin the flow, an 'action_choose_gateway' type node to select a payment gateway, and an 'action_process_payment' type node to complete the payment. Note: Only one 'start_payment_request' node can be present in a payment flow. Flows contain at most 250 nodes, including disconnected draft nodes. Each node allows at most 100 incoming and 100 outgoing connections; the outgoing limit is combined across all ports.","items":{"description":"A payment-flow node. Common fields are defined once; the required type selects one set of node-specific settings and port rules. Node IDs must be unique within the flow; connected node IDs, reciprocal links, required flow-wide nodes and account-owned references are additionally validated by the API. Connections select one main continuation, not parallel execution of every connected node. Connected metadata actions run first as side actions. Main-node precedence is abort, filters, custom function, then process payment and choose gateway; filters place choose gateway before process payment, and start never routes directly to process payment. Filters are considered by ascending numeric filter_priority, then connection order; the first passing filter is chosen, otherwise the first failed filter with a continuation. Payment processing requires a selected gateway. Approval is terminal. Execution stops before node 50 and allows at most three payment attempts. Sales, subscription renewals and trial expirations share these rules when routed through a flow profile. Direct gateway and wallet-origin routing bypass the flow. Disconnected nodes and disconnected branches may be saved intentionally for future use. They are preserved during edits and do not execute unless reached from the selected flow path. Reachability from start is not required for saving a node. All declared node settings and connections must still satisfy their ordinary validation rules.","oneOf":[{"properties":{"type":{"const":"start_payment_request","examples":["start_payment_request"]},"node_settings":{"type":"object","description":"The settings specific to a 'start_payment_request' node type. This is the initial node in a next-gen payment profile flow that triggers when a payment profile is initiated.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"inputs":{"additionalProperties":false,"properties":{}},"outputs":{"additionalProperties":false,"properties":{"output_1":{}}}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_attempt_count","examples":["filter_attempt_count"]},"node_settings":{"allOf":[{"type":"object","description":"Filters by the attempt count for the sale or subscription renewal being processed. Compare the count using the selected greater-than-or-equal or less-than-or-equal condition. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically. This differs from filter_process_payment_count, which counts payment-processing attempts within the current flow.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on attempt count being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"attempt_count":{"type":"string","description":"The number of attempts used in the filter condition. Should be an integer value in string format, e.g. '3'.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","attempt_count"],"propertyNames":{"maxLength":80}},{"properties":{"attempt_count":{"type":"string","description":"Ordinary decimal string representing a whole number of at least 1. Leading zeros, a leading plus sign and surrounding whitespace are allowed. A fractional part may contain only zeros. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_bin_profile","examples":["filter_bin_profile"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_bin_profile' node type. The BIN profile filter allows you to filter based on the first 6 of the current credit card being used for the payment request via BIN profile. You have the option to filter on whether a card BIN is within a BIN profile, not within a BIN profile, or both.","additionalProperties":false,"properties":{"in_bin_profile":{"type":"array","description":"If the request is IN any of the specified BIN profile(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_bin_profile":{"type":"array","description":"If the request is NOT IN any of the specified BIN profile(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_bin_profile"],"properties":{"in_bin_profile":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_bin_profile"],"properties":{"nin_bin_profile":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_campaign","examples":["filter_campaign"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_campaign' node type. The campaign filter allows you to filter based on the campaign associated with the request. You have the option to filter on whether the request is associated with a campaign, not associated with a campaign, or both.","additionalProperties":false,"properties":{"in_campaign":{"type":"array","description":"If the request is IN any of the specified campaign(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_campaign":{"type":"array","description":"If the request is NOT IN any of the specified campaign(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_campaign"],"properties":{"in_campaign":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_campaign"],"properties":{"nin_campaign":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_card_type","examples":["filter_card_type"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_card_type' node type. The card type filter allows you to filter based on the card type being used to process payment. You have the option to filter on whether the card type is one or more types, is not one or more types, or both.","additionalProperties":false,"properties":{"in_card_type":{"type":"array","description":"If the request is IN any of the specified card type(s). Should be a lowercase string representing the card type.","items":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"],"maxLength":2000,"examples":["visa"]},"maxItems":100},"nin_card_type":{"type":"array","description":"If the request is NOT IN any of the specified card type(s). Should be a lowercase string representing the card type.","items":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","mir","elo","hiper","hipercard"],"maxLength":2000,"examples":["visa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_card_type"],"properties":{"in_card_type":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_card_type"],"properties":{"nin_card_type":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_currency","examples":["filter_currency"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_currency' node type. The currency filter allows you to filter based on the currency associated with the request. You have the option to filter on whether the currency is, is not, or both.","additionalProperties":false,"properties":{"in_currency":{"type":"array","description":"If the request is IN any of the specified currency(ies). Should be a lowercase 3 letter ISO 4217 currency string.","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_currency":{"type":"array","description":"If the request is NOT IN any of the specified currency(ies). Should be a lowercase 3 letter ISO 4217 currency string.","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_currency"],"properties":{"in_currency":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_currency"],"properties":{"nin_currency":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_customer_group","examples":["filter_customer_group"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_customer_group' node type. The customer group filter allows you to filter based on the customer group(s) of the customer associated with the request. You have the option to filter based on whether a customer is in a customer group, not in a customer group, or both.\nImportant: This should be used as a historical filter for pre-existing customers. Customer groups do not apply to customers instantly.\n\nCaveats:\n\nIt may take up to 15 minutes after the customers' most recent action for the applicable customer group(s) to be applied/removed.\nIf a customer recently attempted to purchase, recently received a refund, etc., qualifying customer group(s) may not be applied or removed for at least 15 minutes\nIf you recently changed one or more customer groups' settings, all past customers are not refreshed to reflect updates to any of their customer group(s) until 2:00am EST each day.","additionalProperties":false,"properties":{"in_customer_group":{"type":"array","description":"If the customer associated with the request is IN any of the specified customer group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_customer_group":{"type":"array","description":"If the customer associated with the request is NOT IN any of the specified customer group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_customer_group"],"properties":{"in_customer_group":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_customer_group"],"properties":{"nin_customer_group":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_gateway_response","examples":["filter_gateway_response"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_gateway_response' node type. The gateway response filter allows you to filter based on the most recent response received from a gateway in the current payment request. This is a case insensitive match. Provide one or more terms which must be contained in the gateways response in order for the filter to pass.","additionalProperties":false,"properties":{"matching_terms":{"type":"array","description":"The terms to match on the gateway response. If any of the terms provided in this array are contained in the gateway response, the filter will pass. Matching is case insensitive.","items":{"type":"string","description":"A term to match on the gateway response.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["matching_terms"],"propertyNames":{"maxLength":80}},{"properties":{"matching_terms":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_metadata","examples":["filter_metadata"]},"node_settings":{"allOf":[{"type":"object","description":"Filters metadata from the selected source by whether it has or does not have the specified name/value entries. Payment Request refers to metadata supplied in the current sale-payment request, including pending-sale processing and existing-sale retries.","additionalProperties":false,"properties":{"source":{"type":"string","description":"The source of the metadata to filter on.\nCustomer: Any metadata contained in the customer related to the entity being processed.\nGateway: The current gateway chosen, prior to processing payment, if one has been chosen.\nPayment Request: Metadata supplied in the current sale-payment request (initial_sale), including pending-sale processing and existing-sale retries.\nSale: Any metadata contained in the sale related to the entity being processed.\nSubscription: Applies to subscription renew request type only.\nTrial: Applies to trial expire request type only.","enum":["customer","gateway","payment_request","sale","subscription","trial"],"maxLength":2000,"examples":["customer"]},"choice":{"type":"string","description":"Select whether to filter based on the selected source having (has) or not having (not_has) filter_metadata names/values.","enum":["has","not_has"],"maxLength":2000,"examples":["has"]},"filter_metadata":{"type":"array","description":"The metadata name value pairs to filter on, used in conjunction with the source and choice fields.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The name of the metadata to filter on. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 2000 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":2000,"minLength":1,"example":"customer_segment"},"value":{"type":"string","description":"The value of the metadata to filter on. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 2000 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":2000,"minLength":1,"example":"returning_customer"}},"required":["name","value"],"propertyNames":{"maxLength":80}},"maxItems":100,"minItems":1},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["source","choice","filter_metadata"],"propertyNames":{"maxLength":80}},{"properties":{"filter_metadata":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_payment_amount","examples":["filter_payment_amount"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_payment_amount' node type. The payment amount filter allows you to filter based on the payment amount that is to be processed. You have the option to filter whether the amount is less than or equal to, or greater than or equal to a certain amount.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on payment amount being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"payment_amount":{"type":"string","description":"The payment amount to be processed, used in conjunction with the choice field to determine the filter condition. This should be a float in string format. For example, if the amount to be processed is $10.50, this field should be '10.50'.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","payment_amount"],"propertyNames":{"maxLength":80}},{"properties":{"payment_amount":{"type":"string","description":"Ordinary decimal string representing a number of at least 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_process_payment_count","examples":["filter_process_payment_count"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_process_payment_count' node type. The process payment count filter allows you to filter based on the number of Process Payment nodes executed in the current flow request. I.e. the number of times that payment was attempted already in the request. You have the option to filter whether the process payment count is less than or equal to, or greater than or equal to a certain number.","additionalProperties":false,"properties":{"choice":{"type":"string","description":"The choice of whether to filter on process payment count being greater than or equal to, or less than or equal to a certain number.","enum":["gte","lte"],"maxLength":2000,"examples":["gte"]},"process_count":{"type":"string","description":"The number of times the current flow has processed the payment, used in conjunction with the choice field to determine the filter condition. This should be an integer in string format.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["choice","process_count"],"propertyNames":{"maxLength":80}},{"properties":{"process_count":{"type":"string","description":"Ordinary decimal string representing a whole number of at least 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. A fractional part may contain only zeros. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_product_group","examples":["filter_product_group"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'filter_product_group' node type. The product group filter allows you to filter based on the product(s) contained in a product group associated with the request. You have the option to filter on whether a product is in a product group, not in a product group, or both.","additionalProperties":false,"properties":{"in_product_group":{"type":"array","description":"If all products related to the payment request are IN the specified product group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"nin_product_group":{"type":"array","description":"If any products related to the payment request are NOT IN the specified product group(s).","items":{"type":"string","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_product_group"],"properties":{"in_product_group":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_product_group"],"properties":{"nin_product_group":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"required":["node_settings"],"properties":{"type":{"const":"filter_request_type","examples":["filter_request_type"]},"node_settings":{"allOf":[{"type":"object","description":"Filters the current payment-flow request by type. The three supported types are initial_sale, subscription_renew and trial_expire. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically. subscription_renew identifies subscription renewal payments; trial_expire identifies trial expiration payments. Matching requests continue through output_1; nonmatching requests continue through output_2.","additionalProperties":false,"properties":{"in_request_type":{"type":"array","description":"Include the selected payment request types. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","enum":["initial_sale","subscription_renew","trial_expire"],"maxLength":2000,"examples":["initial_sale"]},"maxItems":100},"nin_request_type":{"type":"array","description":"Exclude the selected payment request types. initial_sale includes all sale payments: new sales, pending-sale processing, and retries of existing sales, whether initiated manually or automatically.","items":{"type":"string","enum":["initial_sale","subscription_renew","trial_expire"],"maxLength":2000,"examples":["initial_sale"]},"maxItems":100},"filter_priority":{"type":"string","description":"Determines the evaluation order when multiple filters are connected to the same output. Lower numeric priorities are checked first; an omitted priority defaults to 0. Filters with the same priority are checked in their order within that output port's connections array. The first passing filter is selected and follows its output_1. If no filter passes, the first failed filter with a connected output is selected and follows its output_2.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},{"anyOf":[{"required":["in_request_type"],"properties":{"in_request_type":{"minItems":1}},"propertyNames":{"maxLength":80}},{"required":["nin_request_type"],"properties":{"nin_request_type":{"minItems":1}},"propertyNames":{"maxLength":80}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"The filter conditions passed."},"output_2":{"description":"The filter conditions failed."}},"description":"Outputs for all filter nodes except 'filter_merge_filters'. Applies to 'filter_attempt_count', 'filter_bin_profile', 'filter_campaign', 'filter_card_type', 'filter_currency', 'filter_customer_group', 'filter_gateway_response', 'filter_metadata', 'filter_payment_amount', 'filter_process_payment_count', 'filter_product_group' and 'filter_request_type' node types. These determine the next nodes in the flow that follow this node depending on the filter result."}}},{"properties":{"type":{"const":"filter_merge_filters","examples":["filter_merge_filters"]},"node_settings":{"type":"object","description":"The settings specific to a 'filter_merge_filters' node type. This node allows for filtering based on the merge filters within the payment profile flow.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"All child conditions on output_3 passed."},"output_2":{"description":"At least one child condition failed, or no child filters exist."},"output_3":{"description":"Filter dependencies only. Nested merges are supported; self references, cycles and non-filter children are rejected by the API."}},"description":"output_3 lists child filters combined with AND; it is not a continuation. At least one child must exist for the merge to pass. All children must pass for output_1; otherwise output_2 is selected. Child continuation ports are ignored during the merge evaluation. Only filter nodes may be children, including nested merges. Merge dependencies must be acyclic. These cross-node rules are checked by the API on create/edit and before stored-flow execution. An empty merge is allowed as a draft and evaluates false."}}},{"properties":{"type":{"const":"action_abort_flow","examples":["action_abort_flow"]},"node_settings":{"type":"object","description":"The settings specific to an 'action_abort_flow' node type. Payment flow will be aborted. Use this node if you want to stop the flow and return an error. If a payment has been attempted previously during the flow the decline results will be returned, else an error will be returned. Note: The payment profiles' settings for kill terms and max attempts, if enabled, will still apply. You can use an 'action_custom_function' node prior to 'action_abort_flow' to generate a more detailed custom error based on decline response after an 'action_process_payment' node has run.","additionalProperties":false,"properties":{"custom_error":{"type":"string","description":"A custom error message to be returned when the flow is aborted.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{},"description":"There are no outputs for the 'action_abort_flow' node type. Once this node is reached, the flow is terminated and flow results are returned immediately."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_choose_gateway","examples":["action_choose_gateway"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to an 'action_choose_gateway' node type. These settings determine the source and method of how a gateway is chosen when a payment profile flow reaches an 'action_choose_gateway' node. Chooses a gateway to be used to process a payment request. Read more at <a href=\"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#choose-a-gateway\" target=\"_blank\">https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#choose-a-gateway</a>.","additionalProperties":false,"properties":{"selection_source":{"type":"string","description":"Specifies the gateway-selection source. Gateway: select from the configured gateway IDs. Gateway Group: select from the configured gateway groups. Gateway Last Approved / Gateway Last Declined: start with the customer's most recently approved or declined gateway. Revenue and time rules still apply; a historical transaction does not grant an exemption. If that source provides no eligible gateway, the configured failsafe may be selected. Gateway history and preference never by themselves ignore revenue or time rules.","enum":["gateway","gateway_group","gateway_last_approved","gateway_last_declined"],"maxLength":2000,"examples":["gateway"]},"selection_method":{"type":"string","description":"Specifies the method of gateway selection.\nEvenly Distribute: Process valid gateways by even distribution of total captured payment volume within the past 24 hours.\nRandom: Will pick a random gateway from the list of gateways from selected gateways/gateway groups.\nProcess gateways in the sort order, beginning with the next gateway after the last transaction gateway used in the sort order. Applies to Gateway source only.\nProcess valid gateways in the sort order within the list of selected gateways, always starting with gateway 1.\nApplies to 'gateway' or 'gateway_group' sources only. Recommended value is 'evenly_distribute' to ensure gateways are being chosen in a way that limits overuse of a single gateway.","enum":["evenly_distribute","round_robin","sort_order","random"],"maxLength":2000,"examples":["evenly_distribute"]},"gateways":{"type":"array","description":"An array of gateways RevCent will choose from when the selection source is 'gateway'. When the selection source is 'gateway', provide an array of gateway IDs.","items":{"type":"object","additionalProperties":false,"properties":{"order":{"description":"The order in which the gateway will be selected in relation to the other gateways in the array. Note: orders are 0 indexed, i.e. the first gateway is order 0. The gateway with the lowest order value will be selected first. Order only truly applies when the selection method is 'sort_order' or 'round_robin', however the 'order' property is still required.","type":"integer","examples":[0]},"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"required":["order","id"],"propertyNames":{"maxLength":80}},"maxItems":100},"gateway_groups":{"type":"array","description":"An array of gateway groups to choose from when the selection source is 'gateway_group'. RevCent will utilize all enabled gateways within the gateway groups selected.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"prefer_gateway":{"type":"array","description":"Select one or more conditions in which a gateway should be preferred. CVV Bonus is if a gateway was used in an initial sale where the CVV was passed.\nPreviously Approved for Entity: Give a gateway preference if it has already been successful for the current sale, subscription or trial.\nPreviously Approved for Customer (CVV Bonus): Give a gateway preference if it has already been successful for the current customer. In addition, give the gateway a greater preference if it was previously successful when including CVV.\nPreviously Declined for Entity: Give a gateway preference if it has already been declined for the current sale, subscription or trial. Useful for retrying declined MID's when the customer needs to contact their bank.\nPreviously Declined for Customer (CVV Bonus): Give a gateway preference if it has already been declined for the current customer. In addition, give the gateway a greater preference if it was previously declined when including CVV.\n\nTerminology:\nEntity: The current sale, subscription, or trial being processed according to the request type.\nCustomer: The customer related to the current request.\n\nPreference ranks eligible gateways only. Ordinary approved/declined customer history contributes preference even without CVV; matching CVV history provides an additional bonus. Preference does not override revenue or time rules and does not make an ineligible gateway eligible.","items":{"type":"string","enum":["approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"],"maxLength":2000,"examples":["approved_for_entity"]},"maxItems":100},"not_if_gateway":{"type":"array","description":"Select one or more conditions in which a gateway should not be chosen.\nPreviously Declined In Current Request (used_in_request): If the gateway has been declined in the current flow request, do not choose it.\nPreviously Declined For Entity (declined_for_entity): If the gateway has been declined at any point in the entity's history do not choose it.\nPreviously Declined for Customer (declined_for_customer): If the gateway has been declined at any point in the customers' history, do not choose it.\nPreviously Approved For Entity (approved_for_entity): If the gateway has been approved at any point in the entity's history do not choose it.\nPreviously Approved for Customer (approved_for_customer): If the gateway has been approved at any point in the customers' history, do not choose it.\n\nTerminology:\nCurrent Request: The current flow request.\nEntity: The current sale, subscription, or trial being processed according to the request type.\nCustomer: The customer related to the current request.","items":{"type":"string","enum":["used_in_request","approved_for_entity","approved_for_customer","declined_for_entity","declined_for_customer"],"maxLength":2000,"examples":["used_in_request"]},"maxItems":100},"nin_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which a chosen gateway cannot not be in.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"declined_for_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which once a decline has occurred for any gateways within the group, no gateways in the same group can be chosen.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"approved_for_gateway_group":{"type":"array","description":"Meant for excluding a gateway when choosing. Select one or more gateway groups in which once an approval has occurred for any gateways within the group, no gateways in the same group can be chosen.","items":{"type":"string","description":"A 20 character user gateway group ID.","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"maxItems":100},"ignore_settings":{"type":"array","description":"Select one or more settings to ignore when choosing a gateway. This is an advanced option. This can be used to provide exceptions to certain rules you have set up in your revenue rules and time rules for a specific gateway. For example, if you have a revenue rule that prevents a gateway from being chosen if it has captured over $10,000 in the past 24 hours, but you want to allow that gateway to be chosen regardless of that rule if it was previously approved for the customer, you can select 'revenue_rules' to be ignored.","items":{"type":"string","enum":["revenue_rules","time_rules","corp_lock"],"maxLength":2000,"examples":["revenue_rules"]},"maxItems":100},"smart_bin_enabled":{"type":"string","description":"You can use SmartBin to choose the best gateway during the gateway choice process within the source gateways or gateways within source gateway groups. The SmartBin feature gives you the ability to have payments automatically routed to the gateway that has the highest statistical likelihood of success. I.e. increase approvals by using the gateway most likely to approve a specific customers' credit card.\n\nNote: SmartBin is an extra charge per month. You must contact RevCent first in order to enable SmartBin for your account. Read more about SmartBin at <a href=\"https://kb.revcent.com/payments/credit-card/smartbin\" target=\"_blank\">https://kb.revcent.com/payments/credit-card/smartbin</a>.\n\nWhen you should use SmartBin:\nYou have more than one gateway available to process initial sales.\nYou approval rates vary greatly based on issuer and gateway chosen.\n\nWhen you should not use SmartBin:\nYou have only one gateway processing initial sales.\nYou approval rates are high regardless of issuer and gateway.\n\nWhen SmartBin is not triggered:\nA Prefer Gateway If condition is met, giving one or more gateway(s) in the choice process produce a prefer score.\nSubscription profile prefer settings outside of this profile produce a prefer score.\nTrial prefer settings outside of this profile produce a prefer score.\nOnly one gateway is available to process at time of payment.","enum":["true","false"],"maxLength":2000,"examples":["true"]},"modify_amount_option":{"type":"string","description":"If you want to decrease the payment amount before processing. This is an advanced option. Default is nomodify. Will only apply to additional payment attempts during a payment flow, i.e. will be ignored for the first payment attempt.\n\nOptions:\n'nomodify': Do not modify the original transaction amount.\n'modifypct': Modify the original transaction amount by a percentage decrease, the percentage value being the modify_amount_value property.\n'modifyspf': Modify the original transaction amount by a fixed dollar amount decrease. The fixed amount being the modify_amount_value property.","enum":["nomodify","modifypct","modifyspf"],"maxLength":2000,"examples":["nomodify"]},"modify_amount_value":{"type":"string","description":"The value to modify the amount if 'modifypct' or 'modifyspf' is chosen. This is an advanced option. For example, if 'modifypct' is chosen and the value is '10', the transaction amount will be decreased by 10%. If 'modifyspf' is chosen and the value is '5', the transaction amount will be decreased by $5.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"string","description":"Do you want to swap to another card if one is available? Will only apply to additional payment attempts during a payment flow, i.e. will be ignored for the first payment attempt. Note: Applies only to subscription renewal and trial expiration requests, not sale requests.","enum":["false","true"],"maxLength":2000,"examples":["false"]},"failsafe_gateway":{"type":"string","description":"The gateway ID of the failsafe gateway. The failsafe gateway is the gateway that RevCent will default to if all other gateways provided in the settings are unable to be chosen according to the selection source and selection method settings. Providing a failsafe gateway is highly recommended to ensure that there is always a gateway available to process transactions when reaching an 'action_choose_gateway' node in the flow.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["selection_source"],"propertyNames":{"maxLength":80}},{"allOf":[{"if":{"properties":{"selection_source":{"const":"gateway"}},"required":["selection_source"],"propertyNames":{"maxLength":80}},"then":{"required":["selection_method","gateways"],"properties":{"gateways":{"minItems":1}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"selection_source":{"const":"gateway_group"}},"required":["selection_source"],"propertyNames":{"maxLength":80}},"then":{"required":["selection_method","gateway_groups"],"properties":{"gateway_groups":{"minItems":1}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"modify_amount_option":{"const":"modifypct"}},"required":["modify_amount_option"],"propertyNames":{"maxLength":80}},"then":{"required":["modify_amount_value"],"properties":{"modify_amount_value":{"type":"string","description":"Ordinary decimal string representing a percentage greater than 0 and less than 100. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}},{"if":{"properties":{"modify_amount_option":{"const":"modifyspf"}},"required":["modify_amount_option"],"propertyNames":{"maxLength":80}},"then":{"required":["modify_amount_value"],"properties":{"modify_amount_value":{"type":"string","description":"Ordinary decimal string representing a number greater than 0. Leading zeros, a leading plus sign and surrounding whitespace are allowed. Scientific, hexadecimal, binary and octal notation are not accepted; the value must remain finite and within the API’s supported numeric range.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}}}]}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"Continuation after selection success or a handled selection miss; payment requires an available selected gateway."}},"description":"Gateway selection uses output_1 after either successful selection or a handled selection failure. A process-payment node is eligible only while a gateway is selected. A selection miss can therefore continue to another eligible filter, custom function, abort or gateway-selection node; if no eligible continuation exists, the flow ends."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_insert_metadata","examples":["action_insert_metadata"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to an 'insert_metadata' node type. This node allows for the insertion of metadata within the payment profile flow. The insert metadata node is unique in that it does not have an output. It is a side action meant to be conducted along with the execution of other filter or action nodes.","additionalProperties":false,"properties":{"metadata_target":{"type":"array","description":"The target(s) of where the metadata will be inserted. You can choose to insert metadata to the customer, sale, subscription, subscription_renewal, or trial related to the payment profile flow.","items":{"type":"string","enum":["customer","sale","subscription","subscription_renewal","trial"],"maxLength":2000,"examples":["customer"]},"maxItems":100,"minItems":1},"metadata":{"type":"array","description":"The metadata name value pairs to be inserted to the target specified in the metadata_target setting.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name to be inserted. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 100 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":100,"minLength":1,"example":"customer_segment"},"value":{"type":"string","description":"The metadata value to be inserted. Must contain at least one non-whitespace character. Text is preserved as supplied, including surrounding whitespace. Maximum 255 UTF-16 code units, counting surrounding whitespace. Most characters count as one unit; supplementary Unicode characters such as many emoji count as two.","maxLength":255,"minLength":1,"example":"returning_customer"}},"required":["name","value"],"propertyNames":{"maxLength":80}},"maxItems":100,"minItems":1},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["metadata_target","metadata"],"propertyNames":{"maxLength":80}},{"properties":{"metadata":{"minItems":1},"metadata_target":{"minItems":1}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{},"description":"There are no outputs for the 'action_insert_metadata' node type. It is run 'on the side' of the main flow and does not affect the flow path. Simply connect to the output of a separate node when you wish to insert metadata, make sure the previous node has another output routing to ensure flow continuation. This node is used solely for inserting metadata and does not influence the flow path, thus it has no outputs to connect to other nodes."}}},{"properties":{"type":{"const":"action_process_payment","examples":["action_process_payment"]},"node_settings":{"type":"object","description":"The settings specific to an 'action_process_payment' node type. This node handles the processing of a payment within the flow.","additionalProperties":false,"properties":{"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"propertyNames":{"maxLength":80}},"outputs":{"additionalProperties":false,"properties":{"output_1":{"properties":{"connections":{"maxItems":0}},"description":"Reserved empty port. Approval ends the flow; no connected actions, including metadata, are executed."},"output_2":{"description":"Definitive-decline continuation only, subject to kill terms and the three-attempt limit. Provider errors and ambiguous outcomes stop the flow."}},"description":"Payment approval ends the flow immediately. output_1 is retained only as an optional empty editor port; it cannot contain connections. output_2 may continue only after a definitive decline, unless a kill term or the three-payment-attempt limit stops the flow. Provider errors and ambiguous outcomes are terminal and never follow a retry branch."}}},{"required":["node_settings"],"properties":{"type":{"const":"action_custom_function","examples":["action_custom_function"]},"node_settings":{"allOf":[{"type":"object","description":"The settings specific to a 'custom_function' node type. You can choose to run a function during a payment flow. The function can return a specific response, or can run separately without interrupting the payment flow. It is HIGHLY recommended to read this section to understand using a function in a payment flow: <a href=\"https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#run-function\" target=\"_blank\">https://kb.revcent.com/en/payments/credit-card/next-gen-payment-profile#run-function</a>","additionalProperties":false,"properties":{"custom_function":{"type":"string","description":"The ID of the custom function to be executed when the flow reaches this node. Read more on setting up a custom function here: <a href=\"https://kb.revcent.com/integrations/functions\" target=\"_blank\">https://kb.revcent.com/integrations/functions</a>.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"run_method":{"type":"string","description":"wait_for_response invokes the function once and waits up to custom_function_timeout milliseconds, defaulting to 5000 when omitted. A usable response may control routing; failure, timeout or an empty response follows output_2. queue_continue submits the function separately and follows output_1 without waiting for its response, including on queue delivery failure. custom_function_timeout is ignored in queue_continue mode. Connect a failure continuation if the flow should proceed after a synchronous failure.","enum":["wait_for_response","queue_continue"],"maxLength":2000,"examples":["wait_for_response"]},"node_note":{"type":"string","description":"An optional note to help you organize the node and explain its purpose. It does not affect the flow or payment processing.","maxLength":2000,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"custom_function_timeout":{"type":"string","description":"Optional timeout in milliseconds for wait_for_response. Use an ordinary decimal string greater than 500 and no greater than 8000; omission defaults to 5000 milliseconds (5 seconds). Scientific/hexadecimal notation is not accepted. At execution precision the value must remain greater than 500. On timeout the function is not retried and output_2 is followed. In queue_continue mode the setting is retained but does not wait for or limit the separately queued function.","default":"5000","maxLength":2000}},"propertyNames":{"maxLength":80}},{"required":["custom_function","run_method"],"properties":{"custom_function":{"minLength":20,"maxLength":20}},"propertyNames":{"maxLength":80}}]},"outputs":{"additionalProperties":false,"properties":{"output_1":{"description":"Default usable-response path in wait mode; queue-and-continue path even if delivery fails."},"output_2":{"description":"Wait-mode failure, timeout or empty response, or an explicit function-selected output. Unavailable function dependencies also use this path."}},"description":"In wait_for_response mode, a usable response selects output_1 by default, may select output_2, or may select a directly connected non-metadata node. Failure, timeout or an empty response follows output_2. In queue_continue mode, output_1 is followed without waiting for the function response, including when queue delivery fails. No automatic function retry is made."}}}],"type":"object","additionalProperties":false,"required":["id","type"],"properties":{"id":{"type":"string","description":"Unique node ID within this flow: 1–80 ASCII letters, digits, underscores or hyphens. Connections refer to this exact ID; surrounding whitespace is not accepted.","minLength":1,"maxLength":80,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":{"type":"string","description":"Selects the node-specific settings and permitted input/output ports below.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"inputs":{"type":"object","description":"The nodes that are inputs into the current node. These determine the previous nodes in the flow that lead to this node. This applies to all node types except the start_payment_request node. An empty object is also valid when no connections have been supplied. Omitting the optional connection object has the same effect.","additionalProperties":false,"properties":{"input_1":{"type":"object","additionalProperties":false,"required":["connections"],"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","input"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"input":{"type":"string","enum":["output_1","output_2","output_3"],"examples":["output_1"]}}},"maxItems":100}}}}},"outputs":{"type":"object","additionalProperties":false,"description":"Outgoing ports. The node type determines which ports are supported and what each port means. At most 100 outgoing connections are allowed across all ports. Empty or omitted ports have no connections.","properties":{"output_1":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}},"output_2":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}},"output_3":{"type":"object","additionalProperties":false,"properties":{"connections":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["node","output"],"properties":{"node":{"type":"string","minLength":1,"maxLength":80,"description":"The ID of the connected node within the same flow. Use 1–80 ASCII letters, digits, underscores or hyphens, without surrounding whitespace.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"output":{"type":"string","const":"input_1","examples":["input_1"]}}},"maxItems":100}}}}},"position":{"type":"object","description":"Optional position in the flow editor, in pixels; it does not affect execution. Omitted coordinates receive defaults. Nodes are approximately 300 pixels wide and 400 pixels high.","additionalProperties":false,"properties":{"x_axis":{"type":"number","description":"Horizontal position in pixels, from -100000 through 100000. Fractional coordinates are allowed.","minimum":-100000,"maximum":100000,"examples":[0]},"y_axis":{"type":"number","description":"Vertical position in pixels, from -100000 through 100000. Fractional coordinates are allowed.","minimum":-100000,"maximum":100000,"examples":[0]}}},"node_settings":{}}},"minItems":3,"maxItems":250},"kill_terms":{"type":"object","additionalProperties":false,"description":"You have the ability to cancel the payment profile flow if a declined transaction has specific terms/phrases/words in a step gateways' decline response.","properties":{"enabled":{"description":"Whether kill terms are enabled.","type":"boolean"},"terms":{"description":"An array of one or more kill terms. Kill terms are case-insensitive. This will also cancel/void the related sale being attempted. Only applies to initial sale attempts, not renewals or trial expirations.","type":"array","items":{"type":"string","description":"An individual kill term","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"max_attempts":{"type":"object","additionalProperties":false,"description":"You have the ability to cancel/void a sale if the number of declined payment profile attempts reaches a certain number.","properties":{"enabled":{"description":"Whether max attempts is enabled.","type":"boolean"},"num":{"description":"The number of declined payment attempts that triggers cancellation or voiding when Maximum Attempts is enabled. Optional, but must be a positive integer whenever supplied, including when enabled is false. To disable Maximum Attempts, supply enabled: false and omit num.","type":"integer","minimum":1,"example":3}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"Region code for the API call: 1 for the default region, 2 for the western United States, or 3 for the eastern United States.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/pending_refunds":{"get":{"summary":"Get Pending Refunds","description":"Retrieve pending refund records, newest first by creation time. Results may include records whose processing has finished; inspect status for the outcome.","operationId":"GetPendingRefunds","x-api-permission-description":"Allows the retrieval of pending refunds.","x-api-permission":"pending_refund:retrieve","x-ai-options":["mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date interval may be at most 90 elapsed days, including when customer_id is supplied. customer_id replaces the date filter; other filters and access restrictions still apply.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetPendingRefunds.md","tags":["Pending Refunds"],"parameters":[{"description":"Inclusive start of the pending refund creation interval, as a nonnegative Unix timestamp in seconds. Required and validated even when customer_id replaces the date filter. For repeated values, the last value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the pending refund creation interval, as a nonnegative Unix timestamp in seconds. Must be at or after date_start and no more than 90 elapsed days later. Required and validated even with customer_id. For repeated values, the last value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Maximum pending refunds per page, from 1 to 25. Required; there is no default. For repeated values, the last value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page. For repeated values, the last value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by associated campaigns using 20 character RevCent IDs. Explicit selection includes matching campaigns even when excluded from ordinary lists. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"currency_filter","in":"query","description":"Filter by three-character currency values, normally ISO 4217 codes. Values are uppercased for matching. Repeat for multiple values; up to 50 distinct submitted values are accepted, counting case variants separately before uppercasing. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"name":"gateway_filter","in":"query","description":"Filter by associated gateways using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"style":"form","explode":true},{"name":"paypal_account_filter","in":"query","description":"Filter by associated PayPal accounts using their 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character PayPal account ID.","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"name":"payment_type_filter","in":"query","description":"Filter by payment type: credit_card, paypal, check_direct or offline. Repeat for multiple values, up to 50 distinct submitted values. The offline filter selects Offline Payment. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by processing category: complete or processing. Repeat to include both categories. Returned status text may include historical or more detailed values. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["complete","processing"],"examples":["complete","processing"]}},"style":"form","explode":true},{"description":"Filter by up to 50 submitted metadata name/value pairs. Repeat metadata_filter with one JSON object per value, or use metadata_filter[0][name] and metadata_filter[0][value] with further numeric indices. A single unindexed name/value pair is also supported; a JSON array is not. Values for the same name use OR; different names and other filters use AND. Text is matched exactly. Use METADATA_NAME_EXISTS as the value to match a name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose pending refunds to retrieve. Replaces the date filter; date_start and date_end are still required and must form a valid interval of at most 90 days. Other supplied filters still apply. Only one distinct customer ID is accepted.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of pending refund records and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval, not successful refund processing.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of pending refund records in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"The requested page, with zero returned as one. The maximum requestable page is 20.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"When the pending refund was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the pending refund. Use it with GetPendingRefund.","examples":["GO51EXbbAPS6pP1Ov9kK"],"type":"string","minLength":20,"maxLength":20},"amount":{"description":"The refund amount in major units of iso_currency, rounded to two decimal places. Finite negative and historical values are preserved; unavailable or invalid amounts are omitted. Do not assume a denomination when iso_currency is omitted.","type":"number","format":"float","examples":[201.58]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available nonempty campaign name; omitted when unavailable, even if campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. This describes the customer rather than the refund outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"gateway_id":{"description":"The available 20 character RevCent gateway ID. May be returned without gateway_name.","type":"string","minLength":20,"maxLength":20,"examples":["GOJankNpkpsPzw6No1OP"]},"gateway_name":{"description":"The available nonempty gateway name; omitted when unavailable, even if gateway_id is returned.","type":"string","examples":["Stripe"]},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Defaults to USD when absent, null or empty; omitted for malformed explicit values. Do not assume a currency when omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the pending refund belongs to live mode (true) or test mode (false). Omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"description":"The available payment-type summary. ID/name mapping: KnQ0KlNE6kf5mobyV0pN: Credit Card; ALkMK9pqgzfvgrqjlMVL: PayPal; 1rdzjX2rrkcNjPXMEvOm: Offline Payment; vEZoAZrZL4S6WG4Ryzo1: Check. Omitted when unavailable.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent payment-type ID.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"The payment-type name corresponding to id.","examples":["Credit Card","PayPal","Offline Payment","Check"]}},"title":"Payment Type Object","type":"object","additionalProperties":false},"processed":{"description":"Whether refund processing has finished. A true value can accompany an unsuccessful outcome; inspect status and any available refund transaction for context. Omitted when unavailable.","type":"boolean","examples":[false]},"refund_transaction_id":{"description":"The available 20 character RevCent original transaction ID. Identifies the transaction being refunded, not the refund transaction. Omitted when unavailable.","type":"string","minLength":20,"maxLength":20,"examples":["5RMBXZyzK5COmN72nnm6"]},"refunded_offsite":{"description":"Whether this refund is marked as handled outside RevCent's payment-processor refund request. This flag does not independently confirm receipt of funds. Omitted when unavailable.","type":"boolean","examples":[false]},"status":{"description":"The available pending-refund status text, including historical values. Distinct from customer.status and not restricted to the accepted status_filter values. Omitted when unavailable or empty.","type":"string","examples":["Processing"]},"success_transaction_id":{"description":"The available 20 character RevCent successful refund transaction ID. Identifies the associated refund transaction recorded on completion. Omitted when unavailable; its presence does not independently verify settlement or receipt of funds.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"web_user":{"description":"The available user associated with creating the pending refund; omitted when unavailable. Optional name and username fields may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent user ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"username":{"description":"The username.","type":"string","examples":["JaneDoe"]},"first_name":{"description":"The first name.","type":"string","examples":["Jane"]},"last_name":{"description":"The last name","type":"string","examples":["Doe"]}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 available valid metadata name/value pairs, preserving their text and order. May be empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"When the pending refund was updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be empty or incomplete. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related credit card transaction IDs; the selection may be empty or incomplete. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs; the selection may be empty or incomplete. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs; the selection may be empty or incomplete. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check IDs; the selection may be empty or incomplete. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs; the selection may be empty or incomplete. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}},"description":"A pending refund with available customer, payment and related-resource details. Optional names and summaries may be absent.","type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to the required limit of available pending refunds, newest first by creation time."},"total_count":{"description":"Total number of available pending refund records matching the request filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of result pages calculated from total_count and limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/pending_refunds/{pending_refund_id}":{"get":{"summary":"Get A Pending Refund","description":"Retrieve a pending refund by its ID, including its current status and available customer, payment and related-resource details.","operationId":"GetPendingRefund","x-api-permission-description":"Allows the retrieval of pending refunds.","x-api-permission":"pending_refund:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"A pending refund record may remain available after processing finishes. Inspect status for the outcome; processed alone does not indicate a successful refund.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetPendingRefund.md","tags":["Pending Refunds"],"parameters":[{"in":"path","name":"pending_refund_id","description":"20 character RevCent ID of the pending refund to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested pending refund and response metadata. Optional names and related-resource summaries may be absent.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval, not successful refund processing.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the pending refund was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested pending refund.","examples":["GO51EXbbAPS6pP1Ov9kK"],"type":"string","minLength":20,"maxLength":20},"amount":{"description":"The refund amount in major units of iso_currency, rounded to two decimal places. Finite negative and historical values are preserved; unavailable or invalid amounts are omitted. Do not assume a denomination when iso_currency is omitted.","type":"number","format":"float","examples":[201.58]},"campaign_id":{"description":"The available 20 character RevCent campaign ID. May be returned without campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available nonempty campaign name; omitted when unavailable, even if campaign_id is returned.","examples":["AdWords Campaign"]},"customer":{"description":"The available associated customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"The customer's available nonempty email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer's status: Chargeback, Fraud Detected, Blocked, Disabled or Enabled. This describes the customer rather than the refund outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"gateway_id":{"description":"The available 20 character RevCent gateway ID. May be returned without gateway_name.","type":"string","minLength":20,"maxLength":20,"examples":["GOJankNpkpsPzw6No1OP"]},"gateway_name":{"description":"The available nonempty gateway name; omitted when unavailable, even if gateway_id is returned.","type":"string","examples":["Stripe"]},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Defaults to USD when absent, null or empty; omitted for malformed explicit values. Do not assume a currency when omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the pending refund belongs to live mode (true) or test mode (false). Omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"description":"The available payment-type summary. ID/name mapping: KnQ0KlNE6kf5mobyV0pN: Credit Card; ALkMK9pqgzfvgrqjlMVL: PayPal; 1rdzjX2rrkcNjPXMEvOm: Offline Payment; vEZoAZrZL4S6WG4Ryzo1: Check. Omitted when unavailable.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent payment-type ID.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"The payment-type name corresponding to id.","examples":["Credit Card","PayPal","Offline Payment","Check"]}},"title":"Payment Type Object","type":"object","additionalProperties":false},"processed":{"description":"Whether refund processing has finished. A true value can accompany an unsuccessful outcome; inspect status and any available refund transaction for context. Omitted when unavailable.","type":"boolean","examples":[false]},"refund_transaction_id":{"description":"The available 20 character RevCent ID of the original card transaction being refunded. Omitted when unavailable. Use it with GetTransaction for details.","type":"string","minLength":20,"maxLength":20,"examples":["5RMBXZyzK5COmN72nnm6"]},"refunded_offsite":{"description":"Whether this refund is marked as handled outside RevCent's payment-processor refund request. This flag does not independently confirm receipt of funds. Omitted when unavailable.","type":"boolean","examples":[false]},"status":{"description":"The available pending-refund status text, including historical values. It describes the refund rather than customer.status. Omitted when unavailable or empty.","type":"string","examples":["Processing"]},"success_transaction_id":{"description":"The available 20 character RevCent ID of the successful card refund transaction associated with this pending refund. Omitted when unavailable; its presence does not independently verify settlement or receipt of funds. Use it with GetTransaction for details.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"web_user":{"description":"The available user associated with creating the pending refund; omitted when unavailable. Optional name and username fields may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The 20 character RevCent user ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"username":{"description":"The username.","type":"string","examples":["JaneDoe"]},"first_name":{"description":"The first name.","type":"string","examples":["Jane"]},"last_name":{"description":"The last name","type":"string","examples":["Doe"]}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 available valid metadata name/value pairs, preserving their text and order. May be empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"When the pending refund was updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sales RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sales RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipping RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related discounts exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related trials exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscriptions RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewals RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transactions RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"type":"string","title":"AI Thread ID","description":"A 20 character AI Thread ID.","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related ai threads RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"type":"string","title":"AI Assistant ID","description":"A 20 character AI Assistant ID.","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related ai assistants RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"type":"string","description":"A 20 character PayPal transaction ID.","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related paypal transactions RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payments RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check directs RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transactions RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related pending refunds exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"type":"string","description":"A 20 character chargeback ID.","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related chargebacks exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related fraud detections exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related api calls RevCent IDs. A bounded selection, not a complete history; may be empty. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/pending_refunds/search":{"get":{"summary":"Search Pending Refunds","description":"Search pending refunds using a term or phrase. Returns up to 10 matches ordered by relevance, without pagination or a guarantee of finding every match.","operationId":"SearchPendingRefunds","x-api-permission-description":"Allows the search of pending refunds.","x-api-permission":"pending_refund:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a pending refund when you do not know the pending refund ID and wish to retrieve the details of a specific pending refund. Once a pending refund has been found, use an individual search results' id property and the GetPendingRefund operation to retrieve the pending refund details.<br><br>Important: If using the SearchPendingRefunds and GetPendingRefund method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the pending refund using a secondary non-provided value, such as the customer email in the GetPendingRefund response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchPendingRefunds.md","tags":["Pending Refunds"],"parameters":[{"name":"search_term","description":"Search term or phrase. Leading and trailing whitespace is ignored; blank terms are rejected. If repeated, the final value is used. No other query parameters are supported. Searches RevCent pending refund IDs, customer first and last names, first address lines, email, phone and metadata values.","in":"query","required":true,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"When both single-value and nonempty multi-value query representations are supplied, the final multi-value search_term is used."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"pending refund search matches and API call information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this API call was initiated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval, not the payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 pending refund matches, ordered by relevance. May be empty or contain fewer than 10 results and does not necessarily include all matches. Pagination is not supported.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Associated customer's first address line, when available. May be an empty string or historical text.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Associated customer's second address line, when available. May be an empty string or historical text.","examples":["West Wing"]},"amount":{"type":"number","description":"Pending-refund amount in major currency units, without rounding. May be negative or fractional; omitted when unavailable or invalid. Currency is not included in search results. Use id with GetPendingRefund to obtain currency when available.","examples":[0]},"city":{"type":"string","description":"Associated customer's city, when available. May be an empty string or historical text.","examples":["Washington"]},"created_date_unix":{"description":"When the pending refund was created in RevCent, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"description":"20 character RevCent ID of the associated customer; omitted when unavailable or invalid.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"email":{"type":"string","format":"email","description":"Associated customer email address; omitted when unavailable or invalid.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"Associated customer's first name, when available. May be an empty string or historical text.","examples":["George"]},"highlights":{"description":"Available matching context for the listed public fields; omitted when no public highlights are available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","last_name","metadata","phone"],"description":"Public search field containing the highlighted passage.","examples":["last_name"]},"values":{"type":"array","description":"Matching text fragments within the passage. May be empty.","items":{"type":"string","examples":["Washington"],"description":"One matching text fragment."}},"score":{"type":"number","description":"Optional relevance score for this passage, distinct from the result score. Not limited to 0–1; omitted when unavailable or invalid.","examples":[0]},"full_text":{"type":"string","description":"Available context snippet for a metadata match. Returned only when field is metadata; it may be absent from the limited metadata array and is not necessarily the complete metadata text.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array"},"id":{"description":"20 character RevCent ID of the matching pending refund. Use it with GetPendingRefund to request fuller details and currency when available.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"item_type":{"type":"string","const":"pending_refund","description":"Resource type of this result; always pending_refund.","examples":["pending_refund"]},"last_name":{"type":"string","description":"Associated customer's last name, when available. May be an empty string or historical text.","examples":["Washington"]},"metadata":{"maxItems":50,"description":"Up to 50 available pending refund metadata name/value pairs, preserving text and order. May be empty or omitted and may not include all metadata.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name, from 1 to 100 characters.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Metadata value, from 1 to 255 characters.","examples":["mystore.com"]}}},"type":"array"},"phone":{"type":"string","description":"Associated customer's phone number, when available. May be an empty string or historical text.","examples":["1234567890"]},"score":{"type":"number","description":"Result relevance score; higher values indicate a closer match. Scores are not limited to 0–1. Defaults to 1 when absent; null or invalid values are omitted.","examples":[7.68]},"state":{"type":"string","description":"Associated customer's state or province, when available. May be an empty string or historical text.","examples":["DC"]},"status":{"type":"string","description":"Pending-refund status text, which may be empty or contain historical values. Omitted when unavailable. Successful retrieval does not imply a successful refund.","examples":["Complete","Processing"]},"url":{"type":"string","format":"uri","description":"Link to the RevCent pending refund details page for the pending refund identified by id.","examples":["https://revcent.com/user/pending-refund-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Associated customer's ZIP or postal code, when available. May be an empty string or historical text.","examples":["20500"]}},"description":"A pending refund search summary. Customer fields are optional and omitted independently when unavailable. Search context may differ from the returned customer details."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_sales":{"get":{"summary":"Get Product Sales","description":"Retrieve product sales, newest first by creation time, with available customer, product and payment summaries.","operationId":"GetProductSales","x-api-permission-description":"Allows the retrieval of product sales.","x-api-permission":"product_sale:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date interval may be at most 90 elapsed days, including when customer_id is supplied. customer_id replaces the date filter; other filters and access restrictions still apply.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProductSales.md","tags":["Products Sold"],"parameters":[{"description":"Inclusive start of the product sale creation interval, as a nonnegative Unix timestamp in seconds. Required and validated even when customer_id replaces the date filter. For repeated values, the last value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the product sale creation interval, as a nonnegative Unix timestamp in seconds. Must be at or after date_start and no more than 90 elapsed days later. Required and validated even with customer_id. For repeated values, the last value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Maximum product sales per page, from 1 to 25. Required; there is no default. For repeated values, the last value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page. For repeated values, the last value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by associated campaigns using 20 character RevCent IDs. Explicit selection includes matching campaigns even when excluded from ordinary lists. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by associated shops using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Results remain limited to the shops accessible with the credentials used. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"payment_type_filter","in":"query","description":"Filter by payment type: credit_card, paypal, offline or check_direct. The offline value selects Offline Payment. Repeat for multiple values, up to 50 distinct submitted values. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"name":"product_filter","in":"query","description":"Filter by associated catalog products using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by product sale category: nocapture, captured, settled, complete, void, refund, fraud or chargeback. Repeat for multiple values, up to 50 distinct submitted values. Values within this filter use OR, including fraud and chargeback. For example, captured with fraud selects captured product sales or product sales flagged for fraud. Other filters use AND. Returned status text may differ from these filter values; customer.status is separate.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["nocapture","captured","settled","complete","void","refund","fraud","chargeback"],"examples":["nocapture","captured","complete","fraud"]}},"style":"form","explode":true},{"description":"Filter by up to 50 submitted metadata name/value pairs. Repeat metadata_filter with one JSON object per value, or use metadata_filter[0][name] and metadata_filter[0][value] with further numeric indices. A single unindexed name/value pair is also supported; a JSON array is not. Values for the same name use OR; different names and other filters use AND. Text is matched exactly. Use METADATA_NAME_EXISTS as the value to match a name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose product sales to retrieve. Replaces the date filter; date_start and date_end are still required and must form a valid interval of at most 90 days. Other supplied filters still apply. Only one distinct customer ID is accepted.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of product sales and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval, not successful payment processing.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of product sale records in this page of results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The returned page number, starting at 1. A request for page 0 returns page 1.","type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"When the product sale was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The product sale's 20 character public RevCent ID. Use it with GetProductSale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"amount_original_total":{"description":"The product sale's original total before subsequent adjustments. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The product sale's current total after applicable adjustments. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The product sale's gross captured and settled amount before recorded fees. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The product sale's net captured and settled amount after recorded fees. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The net payment fees recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The product sale's net captured amount not yet included in its settled total. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The product sale's net settled amount. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The remaining amount recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The refund and debit adjustment total recorded for this product sale; not a guarantee that funds have reached the customer. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"The outstanding amount recorded for salvage recovery of this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID. Returned with campaign_name only when both summary values are available.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name. Unavailable or empty names omit the campaign summary.","examples":["AdWords Campaign"]},"customer":{"description":"Available customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's recognized ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","examples":["USA"]},"email":{"type":"string","description":"The customer's email text, including historical values, when available.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status, separate from this product sale's status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"iso_currency":{"description":"Three-letter currency code, normally ISO 4217, in the returned letter case. Omitted when unavailable; do not assume a default currency.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the product sale belongs to live mode (true) or test mode (false). Omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID of the payment type. Credit Card: KnQ0KlNE6kf5mobyV0pN; PayPal: ALkMK9pqgzfvgrqjlMVL; Offline Payment: 1rdzjX2rrkcNjPXMEvOm; Check: vEZoAZrZL4S6WG4Ryzo1.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name of the payment type identified by payment_type.id.","examples":["Credit Card","PayPal","Offline Payment","Check"]}},"description":"The payment type associated with this product sale.","title":"Payment Type Object","type":"object","additionalProperties":false},"product":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The current catalog product name.","examples":["USB HDD"]},"quantity":{"description":"The integer quantity recorded for this product sale. Fractional or invalid quantities are omitted without rounding.","type":"integer","examples":[1]},"price":{"description":"The per-unit price recorded for this product sale, in major currency units rounded to two decimal places.","type":"number","format":"float","examples":[249.99]},"is_subscription":{"type":"boolean","description":"The current catalog product's subscription flag.","examples":[false]},"is_trial":{"type":"boolean","description":"The current catalog product's trial flag.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["usb_hdd"]},"list_price":{"description":"The list price recorded for this product sale, in major currency units rounded to two decimal places.","type":"number","examples":[0]},"is_shippable":{"description":"The current catalog product's shippable flag.","type":"boolean"},"is_bundle":{"description":"The current catalog product's bundle flag.","type":"boolean"},"bundle_settings":{"additionalProperties":false,"description":"Available current catalog bundle settings.","properties":{"products":{"description":"Up to 50 available child product settings for this bundle. May be incomplete.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The current catalog product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The integer child quantity in the current bundle settings. Fractional or invalid quantities are omitted without rounding.","type":"integer","examples":[0]},"price":{"description":"The child price in the current bundle settings, in major currency units rounded to two decimal places.","type":"number","format":"float"},"is_subscription":{"type":"boolean","description":"The current catalog product's subscription flag."},"is_trial":{"type":"boolean","description":"The current catalog product's trial flag."},"is_shippable":{"description":"The current catalog product's shippable flag.","type":"boolean"}},"type":"object"},"maxItems":50,"type":"array"},"unbundle_method":{"description":"When the bundle is separated into its products.","enum":["unbundle_at_sale","unbundle_at_fulfillment"],"type":"string","examples":["unbundle_at_sale"]}},"type":"object"}},"type":"object","description":"Available product summary. Quantity, price and list_price describe this sale; names, consumer references, SKU, flags and bundle settings describe the current catalog product."},"third_party_shop":{"additionalProperties":false,"description":"The third-party shop associated with this product sale.","properties":{"id":{"description":"20 character RevCent ID of the associated third-party shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the associated third-party shop.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available metadata name/value pairs associated with this product sale.","type":"array"},"updated_date_unix":{"description":"When the product sale was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related product sales exist. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs; the selection may be empty or incomplete. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs; the selection may be empty or incomplete. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related credit card transaction IDs; the selection may be empty or incomplete. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs; the selection may be empty or incomplete. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs; the selection may be empty or incomplete. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check IDs; the selection may be empty or incomplete. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs; the selection may be empty or incomplete. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be empty or incomplete. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs; the selection may be empty or incomplete. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be empty or incomplete. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount_discounted":{"description":"The discount amount recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","examples":[0]},"status":{"description":"The product sale's status text. This is separate from customer.status and the accepted status-filter categories.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"description":"Your own reference for the associated catalog product, or for this product sale when no catalog product reference is available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_uuid":{"description":"Identifier for this occurrence of a product in the sale, distinct from its 20 character RevCent catalog product ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bundle_product":{"additionalProperties":false,"description":"The available parent bundle associated with this product-sale result. Name, SKU and consumer reference describe the current catalog parent; quantity and price describe the recorded bundle purchase when available.","properties":{"id":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The current catalog product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The recorded integer parent-bundle quantity, when available. Blank, fractional or invalid values are omitted.","type":"integer","examples":[0]},"price":{"description":"The recorded parent-bundle unit price, in major currency units rounded to two decimal places. Blank or invalid values are omitted.","type":"number","format":"float"},"is_subscription":{"type":"boolean","description":"False for this parent-bundle summary."},"is_trial":{"type":"boolean","description":"False for this parent-bundle summary."},"total_amount":{"description":"Amount for the recorded parent-bundle quantity and unit price, in major currency units rounded to two decimal places. Omitted when the quantity, price or resulting amount is unavailable.","type":"number","examples":[0]},"discount_amount":{"description":"The discount recorded for this product-sale result within the parent bundle, in major currency units rounded to two decimal places.","type":"number","examples":[0]},"bundled_product_ids":{"description":"Available RevCent ID of the child product associated with this result; not an inventory of all bundle members.","items":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"},"bundled_product_uuids":{"description":"Available sale-occurrence identifier of the child associated with this result; not every bundle member's identifier.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"}},"type":"object"}},"description":"A product sale with available customer, product, payment and related-resource details. Monetary values use major units of iso_currency and are rounded to two decimal places. Negative amounts are allowed; unavailable or invalid amounts are omitted. When currency is absent, do not assume a denomination.","type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to limit product sales for the requested page; may be empty."},"total_count":{"description":"Total number of available product sales matching the request filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of result pages calculated from total_count and limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_sales/{product_sale_id}":{"get":{"summary":"Get A Product Sale","description":"Retrieve one product sale with available customer, product and payment summaries.","operationId":"GetProductSale","x-api-permission-description":"Allows the retrieval of product sales.","x-api-permission":"product_sale:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProductSale.md","tags":["Products Sold"],"parameters":[{"in":"path","name":"product_sale_id","description":"20 character RevCent ID of the product sale to retrieve. No query parameters are accepted.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the product sale.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested product sale and retrieval metadata. Monetary values use major units of iso_currency and are rounded to two decimal places. Negative amounts are allowed; unavailable or invalid amounts are omitted. When currency is absent, do not assume a denomination.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval, not successful payment processing.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the product sale was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"amount_original_total":{"description":"The product sale's original total before subsequent adjustments. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The product sale's current total after applicable adjustments. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The product sale's gross captured and settled amount before recorded fees. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The product sale's net captured and settled amount after recorded fees. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The net payment fees recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The product sale's net captured amount not yet included in its settled total. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The product sale's net settled amount. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The remaining amount recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The refund and debit adjustment total recorded for this product sale; not a guarantee that funds have reached the customer. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"The outstanding amount recorded for salvage recovery of this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID. Returned with campaign_name only when both summary values are available.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name. Unavailable or empty names omit the campaign summary.","examples":["AdWords Campaign"]},"customer":{"description":"Available customer summary; omitted when unavailable.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The customer's recognized ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","examples":["USA"]},"email":{"type":"string","description":"The customer's email text, including historical values, when available.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"When the customer was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available customer metadata name/value pairs.","type":"array"},"updated_date_unix":{"description":"When the customer was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status, separate from this product sale's status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}},"type":"object","additionalProperties":false},"iso_currency":{"description":"Three-letter currency code, normally ISO 4217, in the returned letter case. Omitted when unavailable; do not assume a default currency.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the product sale belongs to live mode (true) or test mode (false). Omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID of the payment type. Credit Card: KnQ0KlNE6kf5mobyV0pN; PayPal: ALkMK9pqgzfvgrqjlMVL; Offline Payment: 1rdzjX2rrkcNjPXMEvOm; Check: vEZoAZrZL4S6WG4Ryzo1.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name of the payment type identified by payment_type.id.","examples":["Credit Card","PayPal","Offline Payment","Check"]}},"description":"The payment type associated with this product sale.","title":"Payment Type Object","type":"object","additionalProperties":false},"product":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The current catalog product name.","examples":["USB HDD"]},"quantity":{"description":"The integer quantity recorded for this product sale. Fractional or invalid quantities are omitted without rounding.","type":"integer","examples":[1]},"price":{"description":"The per-unit price recorded for this product sale, in major currency units rounded to two decimal places.","type":"number","format":"float","examples":[249.99]},"is_subscription":{"type":"boolean","description":"The current catalog product's subscription flag.","examples":[false]},"is_trial":{"type":"boolean","description":"The current catalog product's trial flag.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["usb_hdd"]},"list_price":{"description":"The list price recorded for this product sale, in major currency units rounded to two decimal places.","type":"number","examples":[0]},"is_shippable":{"description":"The current catalog product's shippable flag.","type":"boolean"},"is_bundle":{"description":"The current catalog product's bundle flag.","type":"boolean"},"bundle_settings":{"additionalProperties":false,"description":"Available current catalog bundle settings.","properties":{"products":{"description":"Up to 50 available child product settings for this bundle. May be incomplete.","items":{"additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The current catalog product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The integer child quantity in the current bundle settings. Fractional or invalid quantities are omitted without rounding.","type":"integer","examples":[0]},"price":{"description":"The child price in the current bundle settings, in major currency units rounded to two decimal places.","type":"number","format":"float"},"is_subscription":{"type":"boolean","description":"The current catalog product's subscription flag."},"is_trial":{"type":"boolean","description":"The current catalog product's trial flag."},"is_shippable":{"description":"The current catalog product's shippable flag.","type":"boolean"}},"type":"object"},"maxItems":50,"type":"array"},"unbundle_method":{"description":"When the bundle is separated into its products.","enum":["unbundle_at_sale","unbundle_at_fulfillment"],"type":"string","examples":["unbundle_at_sale"]}},"type":"object"}},"type":"object","description":"Available product summary. Quantity, price and list_price describe this sale; names, consumer references, SKU, flags and bundle settings describe the current catalog product."},"third_party_shop":{"additionalProperties":false,"description":"The third-party shop associated with this product sale.","properties":{"id":{"description":"20 character RevCent ID of the associated third-party shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the associated third-party shop.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"maxItems":50,"description":"Up to 50 available metadata name/value pairs associated with this product sale.","type":"array"},"updated_date_unix":{"description":"When the product sale was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be empty or incomplete. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Currently returns an empty array; this does not indicate whether related product sales exist. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be empty or incomplete. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be empty or incomplete. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs; the selection may be empty or incomplete. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs; the selection may be empty or incomplete. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs; the selection may be empty or incomplete. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related credit card transaction IDs; the selection may be empty or incomplete. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be empty or incomplete. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be empty or incomplete. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs; the selection may be empty or incomplete. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs; the selection may be empty or incomplete. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check IDs; the selection may be empty or incomplete. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs; the selection may be empty or incomplete. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be empty or incomplete. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs; the selection may be empty or incomplete. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be empty or incomplete. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be empty or incomplete. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount_discounted":{"description":"The discount amount recorded for this product sale. In major currency units, rounded to two decimal places; omitted when unavailable.","type":"number","examples":[0]},"status":{"description":"The product sale's status text. This is separate from customer.status and the accepted status-filter categories.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"description":"Your own reference for the associated catalog product, or for this product sale when no catalog product reference is available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_uuid":{"description":"Identifier for this occurrence of a product in the sale, distinct from its 20 character RevCent catalog product ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"bundle_product":{"additionalProperties":false,"description":"The available parent bundle associated with this product-sale result. Name, SKU and consumer reference describe the current catalog parent; quantity and price describe the recorded bundle purchase when available.","properties":{"id":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The current catalog product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's current reference for the catalog product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The current catalog product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The recorded integer parent-bundle quantity, when available. Blank, fractional or invalid values are omitted.","type":"integer","examples":[0]},"price":{"description":"The recorded parent-bundle unit price, in major currency units rounded to two decimal places. Blank or invalid values are omitted.","type":"number","format":"float"},"is_subscription":{"type":"boolean","description":"False for this parent-bundle summary."},"is_trial":{"type":"boolean","description":"False for this parent-bundle summary."},"total_amount":{"description":"Amount for the recorded parent-bundle quantity and unit price, in major currency units rounded to two decimal places. Omitted when the quantity, price or resulting amount is unavailable.","type":"number","examples":[0]},"discount_amount":{"description":"The discount recorded for this product-sale result within the parent bundle, in major currency units rounded to two decimal places.","type":"number","examples":[0]},"bundled_product_ids":{"description":"Available RevCent ID of the child product associated with this result; not an inventory of all bundle members.","items":{"type":"string","description":"20 character RevCent product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"},"bundled_product_uuids":{"description":"Available sale-occurrence identifier of the child associated with this result; not every bundle member's identifier.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"}},"type":"object"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_sales/{product_sale_id}/refund":{"post":{"summary":"Refund A Product Sale","description":"Refund a product sale using the product sale ID. If partially refunding, provide the amount property in the request body. If the amount property is not provided, the product sale will be refunded entirely.","operationId":"RefundProductSale","x-api-permission-description":"Allows the refund of product sales.","x-api-permission":"product_sale:refund","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RefundProductSale.md","tags":["Products Sold"],"parameters":[{"in":"path","name":"product_sale_id","description":"The product sale ID","required":true,"schema":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount to refund. If not provided the entire product_sale amount will be refunded.","type":"number","format":"float","examples":[129.99]},"refunded_offsite":{"description":"You have the option to refund a credit card product_sale within RevCent, without refunding the product_sale at the gateway level. If set to true, RevCent will mark all entities as having a refund, but will not contact the gateway to return the money to the customer. This is useful for reporting within RevCent when a product_sale was refunded outside of RevCent, i.e. Rapid Dispute Resolution, mailed a check, etc. Default is false.","type":"boolean","examples":[false]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"amount":{"description":"The amount refunded.","type":"number","format":"float","examples":[129.99]},"campaign_id":{"description":"The 20 character RevCent ID of the related campaign. Omitted when the related campaign is unavailable.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["AdWords Campaign"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the related customer. Omitted when the related customer is unavailable.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"sale_id":{"type":"string","description":"A 20 character sale ID of the product sales' associated sale, if applicable.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"product_sale_id":{"type":"string","description":"A 20 character product sale ID of the product sale being refunded.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the refund."},"result":{"type":"string","examples":["Product sale refunded."]}},"type":"object"}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products":{"get":{"summary":"Get Products","description":"Retrieve current catalog products, newest first by creation time, with available image, bundle and related-resource summaries.","operationId":"GetProducts","x-api-permission-description":"Allows the retrieval of products.","x-api-permission":"product:retrieve","x-ai-options":["mcp"],"x-additional-info":"limit and page are required. Dates are optional; when either date_start or date_end is supplied, both are required and must span less than 9,900 elapsed days. The date interval includes its start and excludes its end.","x-kb-link":"https://kb.revcent.com/en/product","x-kb-name":"Products","x-md-link":"markdown/mcp/operation/GetProducts.md","tags":["Products"],"parameters":[{"description":"Inclusive start of the product creation interval, as a nonnegative Unix timestamp in seconds. Optional when date_end is also omitted; otherwise both dates are required. For repeated values, the last effective value is used.","in":"query","name":"date_start","required":false,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the product creation interval, as a nonnegative Unix timestamp in seconds. Required with date_start; must be at or after the start and less than 9,900 elapsed days later. Equal endpoints return an empty range. For repeated values, the last effective value is used.","in":"query","name":"date_end","required":false,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Maximum products per page, from 1 to 25. Required; there is no default. For repeated values, the last effective value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page. For repeated values, the last effective value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"product_type_filter","in":"query","description":"Filter by product type: basic selects products without trials or subscriptions; subscription includes subscription products with or without trials; subscription_only excludes trials; trial includes trial products with or without subscriptions; trial_only excludes subscriptions. Repeat for multiple values, up to 50 distinct values. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["basic","subscription","subscription_only","trial","trial_only"],"examples":["basic","subscription","subscription_only","trial","trial_only"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by the configured enabled status: enabled or disabled. Repeat to include either status. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["enabled","disabled"],"examples":["enabled","disabled"]}},"style":"form","explode":true},{"name":"product_group_filter","in":"query","description":"Filter by associated product groups using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the product group.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by associated shops using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND. Results remain limited to the shops accessible with the credentials used.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the user shop.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"fulfillment_account_filter","in":"query","description":"Filter by associated fulfillment accounts using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the fulfillment account.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"style":"form","explode":true},{"name":"subscription_profile_filter","in":"query","description":"Filter by associated subscription profiles using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the subscription profile.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"style":"form","explode":true},{"name":"project_filter","in":"query","description":"Filter by associated projects using 20 character RevCent IDs. Repeat for multiple values, up to 50 distinct IDs. Values within this filter use OR; different filters use AND.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of the project.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}},"style":"form","explode":true},{"description":"Filter by up to 50 submitted metadata name/value pairs. Repeat metadata_filter with one JSON object per value, or use metadata_filter[0][name] and metadata_filter[0][value] with further numeric indices. A single unindexed name/value pair is also supported; a JSON array is not. Values for the same name use OR; different names and other filters use AND. Text is matched exactly. Use METADATA_NAME_EXISTS as the value to match a name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"],"minLength":1,"maxLength":255}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of current catalog products and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of products in this page of results.","type":"integer","examples":[10]},"current_page":{"minimum":1,"maximum":20,"description":"The returned page number, starting at 1. A request for page 0 returns page 1.","type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"The product's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"additional_id":{"description":"Up to 50 available external identifier name/value pairs, preserving their text and order.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the additional ID.","type":"string","examples":["woocommerce"]},"value":{"description":"The value of the additional ID.","type":"string","examples":["4244"]}}},"maxItems":50},"bundle_settings":{"description":"Available current bundle configuration; omitted when no usable child settings are available.","type":"object","additionalProperties":false,"properties":{"products":{"description":"Up to 50 available child product ID/name, price and integer quantity settings for this bundle; potentially incomplete.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The product name.","type":"string","examples":["USB HDD"]},"quantity":{"description":"The quantity for the specific product within the bundle.","type":"integer","examples":[1]},"price":{"description":"The price for the specific product within the bundle.","type":"number","format":"float","examples":[99.99]}}},"maxItems":50},"unbundle_method":{"description":"How the bundle product will be unbundled. Either on sale or at fulfillment.","type":"string","enum":["unbundle_at_fulfillment","unbundle_at_sale"],"examples":["unbundle_at_fulfillment","unbundle_at_sale"]}}},"cost":{"description":"The current catalog unit cost, when available.","type":"number","examples":[11.33]},"description":{"description":"The current catalog description; may be empty or omitted when unavailable.","type":"string","examples":["Bundle Product"]},"description_html":{"description":"The current catalog HTML description, returned as available text without rendering.","type":"string","examples":[""]},"enabled":{"description":"The product's configured enabled flag; does not guarantee availability for a particular purchase.","type":"boolean","examples":[true]},"id":{"description":"The product's 20 character RevCent ID. Use with GetProduct for individual retrieval.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"images":{"type":"array","description":"Up to 50 available enabled product-image summaries; may be incomplete or empty.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image filename stem, without its extension.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The available image extension, preserved in its returned case.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image media type, when available.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The base HTTPS URL for product images.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The ready-to-use HTTPS URL for this product image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]},"id":{"type":"string","description":"20 character RevCent ID of the product image.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_full":{"description":"The image filename including its extension.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"caption":{"description":"The product image caption, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"description":"The available compressed image file extensions.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"}}},"maxItems":50},"images_url":{"description":"Compatibility image hostname without a URL scheme. Use each image's full_url for a ready-to-use URL.","type":"string","examples":["productimg.revcent.com"]},"internal_id":{"description":"Your own reference for this catalog product, when available.","type":"string","examples":["merchant-product-1001"]},"is_bundle_product":{"description":"The configured bundle-product flag, when available. It remains independent of whether bundle_settings can be returned.","type":"boolean","examples":[false]},"is_shippable":{"description":"Indicates whether the product is shippable.","type":"boolean","examples":[true]},"name":{"description":"The current catalog product name, including empty or historical text when available.","type":"string","examples":["23r23r332r"]},"price":{"description":"The catalog unit price used as the default purchase price. A purchase can specify a different price.","type":"number","format":"float","examples":[59.99]},"price_subscription":{"description":"The configured recurring unit price for subscription renewals. Existing subscriptions may retain a separately agreed price.","type":"number","format":"float","examples":[39.99]},"price_trial":{"description":"The configured post-trial product unit price for trial expiration; not an immediate product charge when a trial starts.","type":"number","format":"float","examples":[19.99]},"product_group":{"description":"Up to 50 available associated product-group ID/name summaries; may be incomplete or empty.","type":"array","items":{"additionalProperties":false,"description":"A product group associated with the product.","properties":{"id":{"description":"20 character RevCent ID of the associated product group.","maxLength":20,"minLength":20,"type":"string","examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"description":"The name.","type":"string","examples":["Example"]}},"type":"object"},"maxItems":50},"shipping_attributes":{"type":"object","additionalProperties":false,"description":"Available numeric shipping settings and optional fulfillment-account summary; may be empty.","properties":{"weight":{"description":"The product weight in pounds.","type":"number","examples":["1.5"]},"length":{"description":"The product length in inches.","type":"number","examples":["10"]},"width":{"description":"The product width in inches.","type":"number","examples":["5"]},"height":{"description":"The product height in inches.","type":"number","examples":["3"]},"fulfillment_account":{"description":"The available fulfillment provider account's ID/name summary; omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the fulfillment account.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"The fulfillment account name.","type":"string","examples":["ShipWorks"]}}},"rate":{"description":"The configured default shipping rate in major purchase-currency units. It does not guarantee the final shipping charge, which may depend on applicable shipping settings.","type":"number","examples":[0]}}},"sku":{"description":"The product's stock keeping unit (SKU), when available.","type":"string","examples":["Ro7koWlVL_sku"]},"subscription_profile":{"description":"Available associated subscription-profile summary and renewal settings; omitted when unavailable. Only the matching unit, calendar or fiscal frequency branch is returned, when its settings are available.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Renewal-count setting: indefinite has no configured count limit; specific uses occurrences_value.","type":"string","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"description":"The saved renewal-count setting, interpreted when occurrences is specific; omitted when unavailable.","type":"integer","examples":[2]},"subscription_specific":{"description":"Whether this profile is configured for a particular subscription.","type":"boolean","examples":[false]},"subscription_id":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"frequency_unit":{"description":"Interval renewal settings for frequency=unit: unit identifies the time unit and unit_value is its integer interval.","type":"object","additionalProperties":false,"properties":{"unit_value":{"description":"Number of time units between renewals.","type":"integer","examples":[3]},"unit":{"description":"Time unit for the renewal interval, such as days, weeks, months or years.","type":"string","examples":["months"]}}},"frequency":{"description":"The type of frequency in which the subscription renews.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_calendar":{"additionalProperties":false,"description":"Calendar renewal settings for frequency=calendar: calendar_parent identifies the containing period, calendar_unit the subdivision, and calendar_value its position.","properties":{"calendar_parent":{"description":"Containing calendar period, such as week, month or year.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_unit":{"description":"Calendar subdivision used to select the renewal date, such as day, week or month.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_value":{"description":"Position of the selected subdivision within the containing calendar period.","type":"integer","examples":[0]}},"type":"object"},"frequency_fiscal":{"additionalProperties":false,"description":"Fiscal renewal settings for frequency=fiscal: fiscal_setting identifies the fiscal timing setting, fiscal_unit its time unit, and fiscal_value the integer interval or position.","properties":{"fiscal_setting":{"description":"Fiscal timing setting, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_unit":{"description":"Fiscal time unit, such as quarter or year.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_value":{"description":"Integer interval or position associated with the fiscal timing setting.","type":"integer","examples":[0]}},"type":"object"}}},"trial_days":{"description":"The total number of days a trial will last if the product is purchased.","type":"integer","examples":[7]},"trial_shipping_setting":{"description":"If the product is a trial, the shipping settings.","type":"string","enum":["trial_expiration","trial_creation","both_trial_expiration_creation"],"examples":["trial_expiration","trial_creation","both_trial_expiration_creation"]},"url":{"description":"The product purchase URL.","type":"string","examples":[""]},"google_product_category":{"type":"string","description":"The Google product category ID for the product.","examples":["212"]},"msrp":{"type":"number","description":"The manufacturer's suggested retail price for display, when available.","examples":[29.99]},"is_price_sale":{"type":"boolean","description":"The saved display-only on-sale flag.","examples":[true]},"price_sale":{"type":"number","description":"The saved display-only sale price; does not replace price during payment processing. May be returned independently of is_price_sale.","examples":[29.99]},"is_discount":{"type":"boolean","description":"The configured display discount flag; does not establish a payment discount.","examples":[true]},"discount_rate":{"type":"number","description":"The saved display discount value, returned unchanged.","examples":[0.25]},"in_stock":{"type":"boolean","description":"Whether the product is currently in stock. Optional, meant for display purposes.","examples":[true]},"stock":{"type":"integer","description":"The current stock quantity of the product. Optional, meant for display purposes.","examples":[100]},"brand":{"type":"string","description":"The product brand. Optional, meant for display purposes.","examples":["Gildan"]},"material":{"type":"string","description":"The product material. Optional, meant for display purposes.","examples":["Cotton"]},"age_group":{"type":"string","description":"The product age group. Optional, meant for display purposes.","enum":["adult","kids","toddler","infant","newborn"],"examples":["adult","kids","toddler","infant","newborn"]},"condition":{"type":"string","description":"The product condition. Optional, meant for display purposes.","enum":["new","used","refurbished"],"examples":["new","used","refurbished"]},"rating_value":{"type":"number","format":"float","description":"The saved product rating for display; historical finite values are returned unchanged.","examples":[4.5]},"rating_count":{"type":"integer","description":"The recorded display count of product ratings, separate from review_count.","examples":[12]},"upc":{"type":"string","description":"The available UPC product identifier.","examples":["123456789012"]},"isbn":{"type":"string","description":"The available ISBN product identifier.","examples":["978-3-16-148410-0"]},"asin":{"type":"string","description":"The available Amazon product identifier (ASIN).","examples":["B000123456"]},"mpn":{"type":"string","description":"The available manufacturer part number.","examples":["MPN123456"]},"ean":{"type":"string","description":"The available EAN product identifier.","examples":["1234567890123"]},"project":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the associated project.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"description":"The project name.","type":"string","examples":["My Project"]}}},"description":"Up to 50 available associated project ID/name summaries; may be incomplete or empty.","maxItems":50},"third_party_shop":{"type":"object","description":"The available shop ID/name summary, with an optional provider summary; omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]},"third_party":{"description":"The site third party shop associated with the user shop, if applicable.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The third party ID.","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"The third party name.","type":"string","examples":["WooCommerce"]},"enabled":{"description":"Whether the third-party shop provider is enabled.","type":"boolean"}}}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 valid metadata name/value pairs in their existing order; may be incomplete or empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"The product's update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"max_quantity_allowed":{"description":"The configured per-purchase quantity limit. A positive value caps the quantity in sale pricing; zero means no positive cap. Omitted when unavailable. Historical integer values are returned unchanged.","type":"integer","examples":[0]},"review_count":{"description":"The recorded display count of product reviews, separate from rating_count.","type":"integer","examples":[0]},"parent_product":{"additionalProperties":false,"description":"The available parent product's ID/name summary; omitted when unavailable. Its absence does not change the child-product flag.","properties":{"id":{"description":"20 character RevCent ID of the parent product.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"Name of the parent catalog product.","type":"string","examples":["Example"]}},"type":"object"},"is_child_product":{"description":"The configured child-product flag, when available. It remains independent of whether parent_product can be returned.","type":"boolean"}},"description":"Current catalog values and available related summaries. Optional fields are omitted when unavailable; historical strings, empty strings and supported numeric values are preserved. Monetary settings use major units of the purchase currency; this product response has no independent currency. Numeric values are returned without rounding or conversion from text. Bounded relation arrays may be incomplete, and empty arrays do not establish that no relationships were configured.","type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to limit current catalog products for the requested page; may be empty."},"total_count":{"description":"Total number of available products matching the request filters.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of result pages calculated from total_count and limit. May exceed 20 even though requests cannot exceed page 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Product","description":"Create a product.","operationId":"CreateProduct","x-api-permission-description":"Allows the creation of products.","x-api-permission":"product:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/product","x-kb-name":"Products","x-md-link":"markdown/mcp/operation/CreateProduct.md","tags":["Products"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The product name.","type":"string","examples":["Example"]},"description":{"description":"The product description.","type":"string","examples":["Example description"]},"description_html":{"description":"The product description in HTML format.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether the product is currently enabled.","type":"boolean"},"sku":{"description":"The product SKU.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"description":"The product URL at a third party shop.","type":"string","examples":["https://example.com"]},"image_url":{"description":"The product image URL. Only jpg/jpeg/png supported. RevCent will download, compress and host the image within the RevCent CDN for optimal delivery. A product image can then be used in email templates, and are accessible via the RevCent CDN url. This should be a direct URL to an image file, not a webpage. If the product is associated with a third party shop, it is recommended to set this property to the product image from the third party shop.","type":"string","examples":["https://example.com/product.jpg"]},"internal_id":{"description":"Your reference for the product. For a product associated with a third-party shop, use its product ID from that shop.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"price":{"description":"The product price.","type":"number","minimum":0,"examples":[0]},"price_trial":{"description":"The products' trial expiration price. Default is the product price.","type":"number","minimum":0,"examples":[0]},"price_subscription":{"description":"The products subscription renewal price. Default is the product price.","type":"number","minimum":0,"examples":[0]},"trial_shipping_setting":{"description":"If the product is a trial, the shipping settings. Default is trial_expiration.","type":"string","enum":["trial_expiration","trial_creation","both_trial_expiration_creation"],"examples":["trial_expiration"]},"trial_days":{"description":"The total number of days a trial will last if the product is purchased.","type":"integer","minimum":0,"examples":[0]},"cost":{"type":"number","format":"float","description":"Your estimated cost for the product. This is used for your tracking and reporting in RevCent and is not required to be sent.","minimum":0},"is_shippable":{"description":"Indicates whether the product is shippable.","type":"boolean"},"shipping_attributes":{"type":"object","additionalProperties":false,"description":"Contains shipping details for the product.","properties":{"weight":{"description":"The product weight in pounds.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"length":{"description":"The product length in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"width":{"description":"The product width in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"height":{"description":"The product height in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fulfillment_account":{"type":"string","description":"The 20 character ID of the fulfillment account associated with the product. This is required if the product is shippable. Get a list of user fulfillment accounts using the GetFulfillmentAccounts operation, and assign the appropriate fulfillment account to the product when creating or editing a product.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"additional_id":{"description":"An array of additional IDs for the product.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the additional ID.","type":"string","examples":["Example"]},"value":{"description":"The value of the additional ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"third_party_shop":{"type":"string","description":"The 20 character ID of the third party shop associated with the product. This is required if the product is associated with a third party shop.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_profile":{"type":"string","description":"The 20 character ID of the subscription profile associated with the product. This is required if the product is a subscription product. Get a list of subscription profiles using the GetSubscriptionProfiles operation, and assign the appropriate subscription profile to the product when creating or editing a product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"parent_product":{"type":"string","description":"The ID of the parent product associated with the product, if the product is a child product. This value can be the internal_id or a 20 character RevCent ID of an existing product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_bundle_product":{"description":"Indicates whether the product is a bundle of other products.","type":"boolean"},"bundle_settings":{"description":"The specific bundle settings, if this is a bundle product.","type":"object","additionalProperties":false,"properties":{"products":{"description":"An array of products included in the bundle.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"quantity":{"description":"The quantity for the specific product within the bundle.","type":"integer","exclusiveMinimum":0,"examples":[1]},"price":{"description":"The price for the specific product within the bundle.","type":"number","format":"float","minimum":0}},"required":["id","price","quantity"]}},"unbundle_method":{"description":"How the bundle product will be unbundled. Either on sale or at fulfillment.","type":"string","enum":["unbundle_at_fulfillment","unbundle_at_sale"],"examples":["unbundle_at_fulfillment"]}},"required":["products","unbundle_method"]},"product_group":{"description":"An array of product group IDs the product is within.","type":"array","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"google_product_category":{"type":"string","description":"The Google product category ID for the product. This is used for product listings including agentic commerce such as ChatGPT Instant Checkout. The product category should be the most specific category possible that accurately describes the product. A list of valid product categories with ID's can be found here: <a href=\"https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt\" target=\"_blank\">https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt</a>","examples":["aaaaaaaaaaaaaaaaaaaa"]},"msrp":{"type":"number","description":"The MSRP of the product. Optional, meant for display purposes.","minimum":0,"examples":[0]},"is_price_sale":{"type":"boolean","description":"Whether the product is currently on sale. Optional, meant for display purposes and does not affect product pricing during payment processing. This field is deprecated."},"price_sale":{"type":"number","description":"The sale price of the product, if is_price_sale is true. Optional, meant for display purposes and does not affect product pricing during payment processing. This field is deprecated.","minimum":0,"examples":[0]},"is_discount":{"type":"boolean","description":"Whether the product is currently discounted. Optional, meant for display purposes."},"discount_rate":{"type":"number","description":"The discount rate of the product, if is_discount is true. Optional, meant for display purposes.","minimum":0,"examples":[0]},"in_stock":{"type":"boolean","description":"Whether the product is currently in stock. Optional, meant for display purposes."},"stock":{"type":"integer","description":"The current stock quantity of the product. Optional, meant for display purposes.","examples":[0]},"brand":{"type":"string","description":"The product brand. Optional, meant for display purposes.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"material":{"type":"string","description":"The product material. Optional, meant for display purposes.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"age_group":{"type":"string","description":"The product age group. Optional, meant for display purposes.","enum":["adult","kids","toddler","infant","newborn"],"examples":["adult"]},"condition":{"type":"string","description":"The product condition. Optional, meant for display purposes.","enum":["new","used","refurbished"],"examples":["new"]},"rating_value":{"type":"number","format":"float","description":"The product rating value. Optional, meant for display purposes. If provided, should be a value between 0 and 5.","minimum":0,"maximum":5},"rating_count":{"type":"integer","description":"The product rating count. Optional, meant for display purposes.","examples":[0]},"upc":{"type":"string","description":"The product UPC. Recommended if wishing to list via agentic commerce.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"isbn":{"type":"string","description":"The product ISBN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"asin":{"type":"string","description":"The product ASIN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"mpn":{"type":"string","description":"The product MPN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ean":{"type":"string","description":"The product EAN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a product, which may be useful for adding additional information for retrieval and organizational purposes. Metadata is an array of objects, each containing a name and value. The name is limited to 100 characters in length, while the value is limited to 255 characters in length. Metadata can be used for various purposes, such as categorization, filtering, or storing additional product details that are not covered by the standard product properties."}},"required":["name","price","sku"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/{product_id}":{"get":{"summary":"Get A Product","description":"Retrieve one product with its available pricing, shipping, subscription and related-resource details. Archived products can also be retrieved by ID.","operationId":"GetProduct","x-api-permission-description":"Allows the retrieval of products.","x-api-permission":"product:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/product","x-kb-name":"Products","x-md-link":"markdown/mcp/operation/GetProduct.md","tags":["Products"],"parameters":[{"in":"path","name":"product_id","description":"20 character RevCent ID of the product to retrieve. No query parameters are accepted.","required":true,"schema":{"title":"Product ID","type":"string","description":"20 character RevCent ID of the product.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested product and retrieval metadata. Related summaries and individual fields are included when available.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"Response code. 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The product's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"additional_id":{"description":"Up to 50 available external identifier name/value pairs, preserving their text and order.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the additional ID.","type":"string","examples":["woocommerce"]},"value":{"description":"The value of the additional ID.","type":"string","examples":["4244"]}}},"maxItems":50},"bundle_settings":{"description":"Available current bundle configuration; omitted when no usable child settings are available.","type":"object","additionalProperties":false,"properties":{"products":{"description":"Up to 50 available child product ID/name, price and integer quantity settings for this bundle; potentially incomplete.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The product name.","type":"string","examples":["USB HDD"]},"quantity":{"description":"The quantity for the specific product within the bundle.","type":"integer","examples":[1]},"price":{"description":"The price for the specific product within the bundle.","type":"number","format":"float","examples":[99.99]}}},"maxItems":50},"unbundle_method":{"description":"How the bundle product will be unbundled. Either on sale or at fulfillment.","type":"string","enum":["unbundle_at_fulfillment","unbundle_at_sale"],"examples":["unbundle_at_fulfillment","unbundle_at_sale"]}}},"cost":{"description":"The current catalog unit cost, when available.","type":"number","examples":[11.33]},"description":{"description":"The current catalog description; may be empty or omitted when unavailable.","type":"string","examples":["Bundle Product"]},"description_html":{"description":"The current catalog HTML description, returned as available text without rendering.","type":"string","examples":[""]},"enabled":{"description":"The product's configured enabled flag; does not guarantee availability for a particular purchase.","type":"boolean","examples":[true]},"id":{"description":"20 character RevCent ID of the requested product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"images":{"type":"array","description":"Up to 50 available enabled product-image summaries; may be incomplete or empty.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image filename stem, without its extension.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The available image extension, preserved in its returned case.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image media type, when available.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The base HTTPS URL for product images.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The ready-to-use HTTPS URL for this product image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]},"id":{"type":"string","description":"20 character RevCent ID of the product image.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_full":{"description":"The image filename including its extension.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"caption":{"description":"The product image caption, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"description":"The available compressed image file extensions.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"}}},"maxItems":50},"images_url":{"description":"Compatibility image hostname without a URL scheme. Use each image's full_url for a ready-to-use URL.","type":"string","examples":["productimg.revcent.com"]},"internal_id":{"description":"Your own reference for this catalog product, when available.","type":"string","examples":["merchant-product-1001"]},"is_bundle_product":{"description":"The configured bundle-product flag, when available. It remains independent of whether bundle_settings can be returned.","type":"boolean","examples":[false]},"is_shippable":{"description":"Indicates whether the product is shippable.","type":"boolean","examples":[true]},"name":{"description":"The current catalog product name, including empty or historical text when available.","type":"string","examples":["23r23r332r"]},"price":{"description":"The catalog unit price used as the default purchase price. A purchase can specify a different price.","type":"number","format":"float","examples":[59.99]},"price_subscription":{"description":"The configured recurring unit price for subscription renewals. Existing subscriptions may retain a separately agreed price.","type":"number","format":"float","examples":[39.99]},"price_trial":{"description":"The configured post-trial product unit price for trial expiration; not an immediate product charge when a trial starts.","type":"number","format":"float","examples":[19.99]},"product_group":{"description":"Up to 50 available associated product-group ID/name summaries; may be incomplete or empty.","type":"array","items":{"additionalProperties":false,"description":"A product group associated with the product.","properties":{"id":{"description":"20 character RevCent ID of the associated product group.","maxLength":20,"minLength":20,"type":"string","examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"description":"The name.","type":"string","examples":["Example"]}},"type":"object"},"maxItems":50},"shipping_attributes":{"type":"object","additionalProperties":false,"description":"Available numeric shipping settings and optional fulfillment-account summary; may be empty.","properties":{"weight":{"description":"The product weight in pounds.","type":"number","examples":[1.5]},"length":{"description":"The product length in inches.","type":"number","examples":[10]},"width":{"description":"The product width in inches.","type":"number","examples":[5]},"height":{"description":"The product height in inches.","type":"number","examples":[3]},"fulfillment_account":{"description":"The available fulfillment provider account's ID/name summary; omitted when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the fulfillment account.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"The fulfillment account name.","type":"string","examples":["ShipWorks"]}}},"rate":{"description":"The configured default shipping rate in major purchase-currency units. It does not guarantee the final shipping charge, which may depend on applicable shipping settings.","type":"number","examples":[0]}}},"sku":{"description":"The product's stock keeping unit (SKU), when available.","type":"string","examples":["Ro7koWlVL_sku"]},"subscription_profile":{"description":"Available associated subscription-profile summary and renewal settings; omitted when unavailable. Only the matching unit, calendar or fiscal frequency branch is returned, when its settings are available.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Renewal-count setting: indefinite has no configured count limit; specific uses occurrences_value.","type":"string","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"description":"The saved renewal-count setting, interpreted when occurrences is specific; omitted when unavailable.","type":"integer","examples":[2]},"subscription_specific":{"description":"Whether this profile is configured for a particular subscription.","type":"boolean","examples":[false]},"subscription_id":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"frequency_unit":{"description":"Interval renewal settings for frequency=unit: unit identifies the time unit and unit_value is its integer interval.","type":"object","additionalProperties":false,"properties":{"unit_value":{"description":"Number of time units between renewals.","type":"integer","examples":[3]},"unit":{"description":"Time unit for the renewal interval, such as days, weeks, months or years.","type":"string","examples":["months"]}}},"frequency":{"description":"The type of frequency in which the subscription renews.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_calendar":{"additionalProperties":false,"description":"Calendar renewal settings for frequency=calendar: calendar_parent identifies the containing period, calendar_unit the subdivision, and calendar_value its position.","properties":{"calendar_parent":{"description":"Containing calendar period, such as week, month or year.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_unit":{"description":"Calendar subdivision used to select the renewal date, such as day, week or month.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_value":{"description":"Position of the selected subdivision within the containing calendar period.","type":"integer","examples":[0]}},"type":"object"},"frequency_fiscal":{"additionalProperties":false,"description":"Fiscal renewal settings for frequency=fiscal: fiscal_setting identifies the fiscal timing setting, fiscal_unit its time unit, and fiscal_value the integer interval or position.","properties":{"fiscal_setting":{"description":"Fiscal timing setting, when available.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_unit":{"description":"Fiscal time unit, such as quarter or year.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_value":{"description":"Integer interval or position associated with the fiscal timing setting.","type":"integer","examples":[0]}},"type":"object"}}},"trial_days":{"description":"The total number of days a trial will last if the product is purchased.","type":"integer","examples":[7]},"trial_shipping_setting":{"description":"If the product is a trial, the shipping settings.","type":"string","enum":["trial_expiration","trial_creation","both_trial_expiration_creation"],"examples":["trial_expiration","trial_creation","both_trial_expiration_creation"]},"url":{"description":"The product purchase URL.","type":"string","examples":[""]},"google_product_category":{"type":"string","description":"The Google product category ID for the product.","examples":["212"]},"msrp":{"type":"number","description":"The manufacturer's suggested retail price for display, when available.","examples":[29.99]},"is_price_sale":{"type":"boolean","description":"The saved display-only on-sale flag.","examples":[true]},"price_sale":{"type":"number","description":"The saved display-only sale price; does not replace price during payment processing. May be returned independently of is_price_sale.","examples":[29.99]},"is_discount":{"type":"boolean","description":"The configured display discount flag; does not establish a payment discount.","examples":[true]},"discount_rate":{"type":"number","description":"The saved display discount value, returned unchanged.","examples":[0.25]},"in_stock":{"type":"boolean","description":"Whether the product is currently in stock. Optional, meant for display purposes.","examples":[true]},"stock":{"type":"integer","description":"The current stock quantity of the product. Optional, meant for display purposes.","examples":[100]},"brand":{"type":"string","description":"The product brand. Optional, meant for display purposes.","examples":["Gildan"]},"material":{"type":"string","description":"The product material. Optional, meant for display purposes.","examples":["Cotton"]},"age_group":{"type":"string","description":"The product age group. Optional, meant for display purposes.","enum":["adult","kids","toddler","infant","newborn"],"examples":["adult","kids","toddler","infant","newborn"]},"condition":{"type":"string","description":"The product condition. Optional, meant for display purposes.","enum":["new","used","refurbished"],"examples":["new","used","refurbished"]},"rating_value":{"type":"number","format":"float","description":"The saved product rating for display; historical finite values are returned unchanged.","examples":[4.5]},"rating_count":{"type":"integer","description":"The recorded display count of product ratings, separate from review_count.","examples":[12]},"upc":{"type":"string","description":"The available UPC product identifier.","examples":["123456789012"]},"isbn":{"type":"string","description":"The available ISBN product identifier.","examples":["978-3-16-148410-0"]},"asin":{"type":"string","description":"The available Amazon product identifier (ASIN).","examples":["B000123456"]},"mpn":{"type":"string","description":"The available manufacturer part number.","examples":["MPN123456"]},"ean":{"type":"string","description":"The available EAN product identifier.","examples":["1234567890123"]},"project":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the associated project.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"description":"The project name.","type":"string","examples":["My Project"]}}},"description":"Up to 50 available associated project ID/name summaries; may be incomplete or empty.","maxItems":50},"third_party_shop":{"type":"object","description":"The available shop ID/name summary, with an optional provider summary; omitted when unavailable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]},"third_party":{"description":"The site third party shop associated with the user shop, if applicable.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The third party ID.","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"The third party name.","type":"string","examples":["WooCommerce"]},"enabled":{"description":"Whether the third-party shop provider is enabled.","type":"boolean"}}}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"description":"Up to 50 valid metadata name/value pairs in their existing order; may be incomplete or empty.","maxItems":50,"type":"array"},"updated_date_unix":{"description":"The product's update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"max_quantity_allowed":{"description":"The configured per-purchase quantity limit. A positive value caps the quantity in sale pricing; zero means no positive cap. Omitted when unavailable. Historical integer values are returned unchanged.","type":"integer","examples":[0]},"review_count":{"description":"The recorded display count of product reviews, separate from rating_count.","type":"integer","examples":[0]},"parent_product":{"additionalProperties":false,"description":"The available parent product's ID/name summary; omitted when unavailable. Its absence does not change the child-product flag.","properties":{"id":{"description":"20 character RevCent ID of the parent product.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"Name of the parent catalog product.","type":"string","examples":["Example"]}},"type":"object"},"is_child_product":{"description":"The configured child-product flag, when available. It remains independent of whether parent_product can be returned.","type":"boolean"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Product","description":"Edit the details of a specific product using the product ID. Manage product images separately: use AddProductImage to add image content, EditProductImage to change a caption or featured status, and DeleteProductImage to remove an image.","operationId":"EditProduct","x-api-permission-description":"Allows the editing of products.","x-api-permission":"product:edit","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/en/product","x-kb-name":"Products","x-md-link":"markdown/mcp/operation/EditProduct.md","tags":["Products"],"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The product name.","type":"string","examples":["Example"]},"description":{"description":"The product description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"description_html":{"description":"The product description in HTML format.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether the product is currently enabled.","type":"boolean"},"sku":{"description":"The product SKU.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"description":"The product URL at a third party shop.","type":"string","examples":["https://example.com"]},"internal_id":{"description":"Your reference for the product. For a product associated with a third-party shop, use its product ID from that shop.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"price":{"description":"The product price.","type":"number","minimum":0,"examples":[0]},"price_trial":{"description":"The products' trial expiration price. Default is the product price.","type":"number","minimum":0,"examples":[0]},"price_subscription":{"description":"The products subscription renewal price. Default is the product price.","type":"number","minimum":0,"examples":[0]},"trial_shipping_setting":{"description":"If the product is a trial, the shipping settings. Default is trial_expiration.","type":"string","enum":["trial_expiration","trial_creation","both_trial_expiration_creation"],"examples":["trial_expiration"]},"trial_days":{"description":"The total number of days a trial will last if the product is purchased.","type":"integer","minimum":0,"examples":[0]},"cost":{"type":"number","description":"Your estimated cost for the product. This is used for your tracking and reporting in RevCent. Optional.","minimum":0,"examples":[0]},"is_shippable":{"description":"Indicates whether the product is shippable.","type":"boolean"},"shipping_attributes":{"type":"object","additionalProperties":false,"description":"Contains shipping details for the product.","properties":{"weight":{"description":"The product weight in pounds.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"length":{"description":"The product length in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"width":{"description":"The product width in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"height":{"description":"The product height in inches.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fulfillment_account":{"type":"string","description":"The 20 character ID of the fulfillment account associated with the product. This is required if the product is shippable. Get a list of user fulfillment accounts using the GetFulfillmentAccounts operation, and assign the appropriate fulfillment account to the product when creating or editing a product.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"additional_id":{"description":"An array of additional IDs for the product. Optional.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the additional ID.","type":"string","examples":["Example"]},"value":{"description":"The value of the additional ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"third_party_shop":{"type":"string","description":"The 20 character ID of the third party shop associated with the product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_profile":{"type":"string","description":"The 20 character ID of the subscription profile associated with the product. This is required if the product is a subscription product. Get a list of subscription profiles using the GetSubscriptionProfiles operation, and assign the appropriate subscription profile to the product when creating or editing a product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"parent_product":{"type":"string","description":"The ID of the parent product associated with the product, if the product is a child product. This value can be the internal_id or a 20 character RevCent ID of an existing product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"is_bundle_product":{"description":"Indicates whether the product is a bundle of other products.","type":"boolean"},"bundle_settings":{"description":"The specific bundle settings, if this is a bundle product.","type":"object","additionalProperties":false,"properties":{"products":{"description":"An array of products included in the bundle.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"quantity":{"description":"The quantity for the specific product within the bundle.","type":"integer","exclusiveMinimum":0,"examples":[1]},"price":{"description":"The price for the specific product within the bundle.","type":"number","format":"float","minimum":0}},"required":["id","price","quantity"]}},"unbundle_method":{"description":"How the bundle product will be unbundled. Either on sale or at fulfillment.","type":"string","enum":["unbundle_at_fulfillment","unbundle_at_sale"],"examples":["unbundle_at_fulfillment"]}},"required":["products","unbundle_method"]},"product_group":{"description":"An array of product group IDs the product is within.","type":"array","items":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}},"google_product_category":{"type":"string","description":"The Google product category ID for the product. This is used for product listings including agentic commerce such as ChatGPT Instant Checkout. The product category should be the most specific category possible that accurately describes the product. A list of valid product categories with ID's can be found here: <a href=\"https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt\" target=\"_blank\">https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt</a>","examples":["aaaaaaaaaaaaaaaaaaaa"]},"msrp":{"type":"number","description":"The MSRP of the product. Optional, meant for display purposes.","minimum":0,"examples":[0]},"is_price_sale":{"type":"boolean","description":"Whether the product is currently on sale. Optional, meant for display purposes and does not affect product pricing during payment processing. This field is deprecated."},"price_sale":{"type":"number","description":"The sale price of the product, if is_price_sale is true. Optional, meant for display purposes and does not affect product pricing during payment processing. This field is deprecated.","minimum":0,"examples":[0]},"is_discount":{"type":"boolean","description":"Whether the product is currently discounted. Optional, meant for display purposes."},"discount_rate":{"type":"number","description":"The discount rate of the product, if is_discount is true. Optional, meant for display purposes.","minimum":0,"examples":[0]},"in_stock":{"type":"boolean","description":"Whether the product is currently in stock. Optional, meant for display purposes."},"stock":{"type":"integer","description":"The current stock quantity of the product. Optional, meant for display purposes.","examples":[0]},"brand":{"type":"string","description":"The product brand. Optional, meant for display purposes.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"material":{"type":"string","description":"The product material. Optional, meant for display purposes.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"age_group":{"type":"string","description":"The product age group. Optional, meant for display purposes.","enum":["adult","kids","toddler","infant","newborn"],"examples":["adult"]},"condition":{"type":"string","description":"The product condition. Optional, meant for display purposes.","enum":["new","used","refurbished"],"examples":["new"]},"rating_value":{"description":"The product rating value for display purposes, from 0 through 5 inclusive. Accepts a finite number or a nonblank ordinary decimal string, such as \"4.50\" or \".5\". Decimal strings may include surrounding whitespace, leading zeros, a leading plus sign, or a trailing decimal point; negative zero is also accepted. Scientific, hexadecimal, binary and octal string notation is not accepted.","oneOf":[{"type":"number","minimum":0,"maximum":5},{"type":"string","description":"Rating as a finite ordinary decimal string from 0 through 5, inclusive, such as \"4.50\". Surrounding whitespace, leading zeros, a leading plus sign, a trailing decimal point and negative zero are allowed; scientific, hexadecimal, binary and octal notation are not accepted."}]},"rating_count":{"type":"integer","description":"The product rating count. Optional, meant for display purposes.","examples":[0]},"upc":{"type":"string","description":"The product UPC. Recommended if wishing to list via agentic commerce.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"isbn":{"type":"string","description":"The product ISBN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"asin":{"type":"string","description":"The product ASIN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"mpn":{"type":"string","description":"The product MPN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ean":{"type":"string","description":"The product EAN.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a product, which may be useful for adding additional information for retrieval and organizational purposes. Metadata is an array of objects, each containing a name and value. The name is limited to 100 characters in length, while the value is limited to 255 characters in length. Metadata can be used for various purposes, such as categorization, filtering, or storing additional product details that are not covered by the standard product properties."}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/{product_id}/enable":{"post":{"summary":"Enable A Product","description":"Enable a currently disabled product.","operationId":"EnableProduct","x-api-permission-description":"Allows the enabling of products.","x-api-permission":"product:enable","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EnableProduct.md","tags":["Products"],"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["Product enabled."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/{product_id}/disable":{"post":{"summary":"Disable A Product","description":"Disable a currently enabled product.","operationId":"DisableProduct","x-api-permission-description":"Allows the disabling of products.","x-api-permission":"product:disable","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DisableProduct.md","tags":["Products"],"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["Product disabled."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/{product_id}/delete":{"post":{"summary":"Delete A Product","description":"Delete an existing product.","operationId":"DeleteProduct","x-api-permission-description":"Allows the deletion of products.","x-api-permission":"product:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteProduct.md","tags":["Products"],"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["Product deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/{product_id}/images":{"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}}],"get":{"operationId":"GetProductImages","summary":"Get product images","description":"Retrieve a product’s images in creation order, including disabled images. Returns one fixed page of up to 1,000 images; no query parameters are accepted.","x-api-permission":"product:retrieve","x-api-permission-description":"Allows product images to be retrieved.","x-ai-options":["ai_assistant","mcp"],"tags":["Products"],"responses":{"200":{"description":"The product images were retrieved.","content":{"application/json":{"schema":{"description":"The product’s images and retrieval metadata. More than 1,000 images, or an image with unusable identity, timestamp or original format information, causes a retrieval error instead of a partial list.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of images in results, including zero for an empty collection.","type":"integer","maximum":1000,"minimum":0,"examples":[0]},"current_page":{"description":"Always 1, including when results is empty.","type":"integer","const":1,"examples":[1]},"total_count":{"description":"The number of images in results, including zero for an empty collection.","type":"integer","maximum":1000,"minimum":0,"examples":[0]},"total_pages":{"description":"Always 1, including when results is empty.","type":"integer","const":1,"examples":[1]},"results":{"type":"array","maxItems":1000,"description":"The product’s available images in ascending creation order. May be empty. Deleted or archived images are excluded; disabled images remain retrievable.","items":{"type":"object","additionalProperties":false,"description":"A product image. Unavailable or invalid optional display values are omitted; empty captions and false flags are preserved.","properties":{"base_url":{"type":"string","format":"uri","description":"The HTTPS base URL for the original image and available variants.","examples":["https://example.com"]},"caption":{"type":"string","description":"The image caption, which may be empty; omitted when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"type":"array","description":"Available variant filename suffixes, preserving order and duplicates. Append a suffix to id; if it has no extension, append a period and file_ext. Join that filename to base_url with a slash. For example, _resize_150 uses the original extension, while _resize_150.webp supplies its own. Unsafe or unavailable suffixes are omitted; the array may be empty or unavailable.","items":{"type":"string","description":"A suffix beginning with an underscore, followed by ASCII letters, digits, underscores or hyphens, optionally followed by a period and an alphanumeric extension. It contains no path, query or fragment characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"enabled":{"type":"boolean","description":"The image's enabled flag. Disabled images remain retrievable; omitted when unavailable."},"featured":{"type":"boolean","description":"Whether this is a featured product image; omitted when unavailable."},"file_ext":{"type":"string","enum":["jpeg","jpg","png"],"description":"The original image extension: jpeg or historical jpg for JPEG, or png for PNG.","examples":["jpeg"]},"file_name":{"type":"string","description":"The original image filename, including its extension: id followed by a period and file_ext.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_size":{"type":"integer","minimum":1,"maximum":999999,"description":"The original image size in bytes; omitted when unavailable or outside the supported 1–999,999-byte range.","examples":[1]},"full_url":{"type":"string","format":"uri","description":"The ready-to-use HTTPS URL of the original image: base_url, a slash, and file_name.","examples":["https://example.com"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The image's 20 character RevCent ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"image_height":{"type":"integer","minimum":1,"description":"The original image height in pixels; omitted when unavailable or not a positive integer.","examples":[1]},"image_width":{"type":"integer","minimum":1,"description":"The original image width in pixels; omitted when unavailable or not a positive integer.","examples":[1]},"mimetype":{"type":"string","enum":["image/jpeg","image/jpg","image/png"],"description":"The original image media type, matching file_ext. image/jpg is a historical JPEG alias.","examples":["image/jpeg"]},"created_date_unix":{"format":"int64","description":"The unix timestamp of when the item was created.","type":"integer","examples":[1675367500]},"updated_date_unix":{"format":"int64","description":"The unix timestamp of when the item was last updated.","type":"integer","examples":[1675367500]}}}}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}},"x-md-link":"markdown/mcp/operation/GetProductImages.md"},"post":{"operationId":"AddProductImage","summary":"Add a product image","description":"Adds a JPEG or PNG image to a product from either uploaded image bytes or a public HTTPS image URL. The image must be smaller than 1,000,000 bytes.","x-api-permission":"product:edit","x-api-permission-description":"Allows an image to be added to a product.","x-ai-options":["ai_assistant","mcp"],"tags":["Products"],"requestBody":{"required":true,"description":"A public HTTPS image URL or raw JPEG or PNG image bytes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["image_url"],"description":"A request to add a product image from a public HTTPS URL.","properties":{"image_url":{"type":"string","format":"uri","description":"A public HTTPS URL for a JPEG or PNG image. URLs containing credentials and URLs resolving to private, loopback, or link-local addresses are not accepted.","examples":["https://example.com/product.jpg"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}},"image/jpeg":{"schema":{"type":"string","format":"binary","description":"Raw JPEG image bytes."}},"image/png":{"schema":{"type":"string","format":"binary","description":"Raw PNG image bytes."}}}},"responses":{"200":{"description":"The image was added to the product.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"A successful product-image mutation response.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_image":{"description":"The product image affected by the request.","type":"object","additionalProperties":false,"properties":{"base_url":{"type":"string","format":"uri","description":"The base CDN URL containing the image and its generated variants.","examples":["https://example.com"]},"caption":{"type":"string","description":"The plain-text image caption.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"type":"array","description":"The file-name suffixes of generated image variants available from the base URL.","items":{"type":"string","description":"A generated image variant file-name suffix.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was created.","type":"integer","format":"unix-time","examples":[1675367500]},"enabled":{"type":"boolean","description":"Whether the product image is enabled."},"featured":{"type":"boolean","description":"Whether the image is the product's featured image."},"file_ext":{"type":"string","enum":["jpeg","png"],"description":"The original image file extension.","examples":["jpeg"]},"file_name":{"type":"string","description":"The generated file name of the original image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_size":{"type":"integer","minimum":1,"maximum":999999,"description":"The original image size in bytes.","examples":[1]},"full_url":{"type":"string","format":"uri","description":"The complete CDN URL of the original image.","examples":["https://example.com"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"image_height":{"type":"integer","minimum":1,"description":"The original image height in pixels.","examples":[1]},"image_width":{"type":"integer","minimum":1,"description":"The original image width in pixels.","examples":[1]},"mimetype":{"type":"string","enum":["image/jpeg","image/png"],"description":"The media type of the original image.","examples":["image/jpeg"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"product_image_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image affected by the request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/AddProductImage.md"}},"/products/{product_id}/images/{product_image_id}":{"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},{"name":"product_image_id","in":"path","required":true,"description":"The 20-character public ID of an image associated with the product.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"get":{"operationId":"GetProductImage","summary":"Get a product image","description":"Retrieve one image belonging to a product, including a disabled image. No query parameters are accepted.","x-api-permission":"product:retrieve","x-api-permission-description":"Allows a product image to be retrieved.","x-ai-options":["ai_assistant","mcp"],"tags":["Products"],"responses":{"200":{"description":"The product image was retrieved.","content":{"application/json":{"schema":{"description":"The requested product image and retrieval metadata. Unavailable optional fields are omitted; empty captions and false flags are preserved.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"format":"int64","description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"A value of 1 indicates successful retrieval.","examples":[1]},"base_url":{"type":"string","format":"uri","description":"The HTTPS base URL for the original image and available variants.","examples":["https://example.com"]},"caption":{"type":"string","description":"The image caption, which may be empty; omitted when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"type":"array","description":"Available variant filename suffixes, preserving order and duplicates. Append a suffix to id; if it has no extension, append a period and file_ext. Join that filename to base_url with a slash. For example, _resize_150 uses the original extension, while _resize_150.webp supplies its own. Unsafe or unavailable suffixes are omitted; the array may be empty or unavailable.","items":{"type":"string","description":"A suffix beginning with an underscore, followed by ASCII letters, digits, underscores or hyphens, optionally followed by a period and an alphanumeric extension. It contains no path, query or fragment characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"enabled":{"type":"boolean","description":"The image's enabled flag. Disabled images remain retrievable; omitted when unavailable."},"featured":{"type":"boolean","description":"Whether this is a featured product image; omitted when unavailable."},"file_ext":{"type":"string","enum":["jpeg","jpg","png"],"description":"The original image extension: jpeg or historical jpg for JPEG, or png for PNG.","examples":["jpeg"]},"file_name":{"type":"string","description":"The original image filename, including its extension: id followed by a period and file_ext.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_size":{"type":"integer","minimum":1,"maximum":999999,"description":"The original image size in bytes; omitted when unavailable or outside the supported 1–999,999-byte range.","examples":[1]},"full_url":{"type":"string","format":"uri","description":"The ready-to-use HTTPS URL of the original image: base_url, a slash, and file_name.","examples":["https://example.com"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the requested image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"image_height":{"type":"integer","minimum":1,"description":"The original image height in pixels; omitted when unavailable or not a positive integer.","examples":[1]},"image_width":{"type":"integer","minimum":1,"description":"The original image width in pixels; omitted when unavailable or not a positive integer.","examples":[1]},"mimetype":{"type":"string","enum":["image/jpeg","image/jpg","image/png"],"description":"The original image media type, matching file_ext. image/jpg is a historical JPEG alias.","examples":["image/jpeg"]},"created_date_unix":{"format":"int64","description":"The unix timestamp of when the item was created.","type":"integer","examples":[1675367500]},"updated_date_unix":{"format":"int64","description":"The unix timestamp of when the item was last updated.","type":"integer","examples":[1675367500]},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the product that owns the requested image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable confirmation that the product image was retrieved.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}},"x-md-link":"markdown/mcp/operation/GetProductImage.md"},"post":{"operationId":"EditProductImage","summary":"Edit a product image","description":"Updates the caption or featured status of a product image. Setting an image as featured makes it the product's only featured image.","x-api-permission":"product:edit","x-api-permission-description":"Allows product-image details to be edited.","x-ai-options":["ai_assistant","mcp"],"tags":["Products"],"requestBody":{"required":true,"description":"The product-image fields to update.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"minProperties":1,"description":"The editable fields for a product image.","properties":{"caption":{"type":"string","maxLength":1000,"description":"A plain-text caption for the image. An empty string clears the caption.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"featured":{"type":"boolean","description":"Whether the image should be the product's featured image. Setting this value to true clears featured status from the product's other images."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}}},"responses":{"200":{"description":"The product image was updated.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"A successful product-image mutation response.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_image":{"description":"The product image affected by the request.","type":"object","additionalProperties":false,"properties":{"base_url":{"type":"string","format":"uri","description":"The base CDN URL containing the image and its generated variants.","examples":["https://example.com"]},"caption":{"type":"string","description":"The plain-text image caption.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"type":"array","description":"The file-name suffixes of generated image variants available from the base URL.","items":{"type":"string","description":"A generated image variant file-name suffix.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was created.","type":"integer","format":"unix-time","examples":[1675367500]},"enabled":{"type":"boolean","description":"Whether the product image is enabled."},"featured":{"type":"boolean","description":"Whether the image is the product's featured image."},"file_ext":{"type":"string","enum":["jpeg","png"],"description":"The original image file extension.","examples":["jpeg"]},"file_name":{"type":"string","description":"The generated file name of the original image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_size":{"type":"integer","minimum":1,"maximum":999999,"description":"The original image size in bytes.","examples":[1]},"full_url":{"type":"string","format":"uri","description":"The complete CDN URL of the original image.","examples":["https://example.com"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"image_height":{"type":"integer","minimum":1,"description":"The original image height in pixels.","examples":[1]},"image_width":{"type":"integer","minimum":1,"description":"The original image width in pixels.","examples":[1]},"mimetype":{"type":"string","enum":["image/jpeg","image/png"],"description":"The media type of the original image.","examples":["image/jpeg"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"product_image_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image affected by the request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/EditProductImage.md"}},"/products/{product_id}/images/{product_image_id}/delete":{"parameters":[{"in":"path","name":"product_id","description":"The product ID.","required":true,"schema":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},{"name":"product_image_id","in":"path","required":true,"description":"The 20-character public ID of an image associated with the product.","schema":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}}],"post":{"operationId":"DeleteProductImage","summary":"Delete a product image","description":"Deletes a product image and its generated image variants.","x-api-permission":"product:delete","x-api-permission-description":"Allows an image to be deleted from a product.","x-ai-options":["ai_assistant","mcp"],"tags":["Products"],"requestBody":{"required":false,"description":"This action does not require request properties.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"maxProperties":0,"description":"An optional empty JSON object."}}}},"responses":{"200":{"description":"The product image was deleted.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"A successful product-image mutation response.","properties":{"api_call_id":{"type":"string","description":"The public ID of the API call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"description":"The RevCent API region that completed the request.","type":"string","enum":["1","2","3"],"examples":["1"]},"code":{"type":"integer","const":1,"description":"The RevCent success code.","examples":[1]},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_image":{"description":"The product image affected by the request.","type":"object","additionalProperties":false,"properties":{"base_url":{"type":"string","format":"uri","description":"The base CDN URL containing the image and its generated variants.","examples":["https://example.com"]},"caption":{"type":"string","description":"The plain-text image caption.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"compressed_extensions":{"type":"array","description":"The file-name suffixes of generated image variants available from the base URL.","items":{"type":"string","description":"A generated image variant file-name suffix.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"created_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was created.","type":"integer","format":"unix-time","examples":[1675367500]},"enabled":{"type":"boolean","description":"Whether the product image is enabled."},"featured":{"type":"boolean","description":"Whether the image is the product's featured image."},"file_ext":{"type":"string","enum":["jpeg","png"],"description":"The original image file extension.","examples":["jpeg"]},"file_name":{"type":"string","description":"The generated file name of the original image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"file_size":{"type":"integer","minimum":1,"maximum":999999,"description":"The original image size in bytes.","examples":[1]},"full_url":{"type":"string","format":"uri","description":"The complete CDN URL of the original image.","examples":["https://example.com"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"image_height":{"type":"integer","minimum":1,"description":"The original image height in pixels.","examples":[1]},"image_width":{"type":"integer","minimum":1,"description":"The original image width in pixels.","examples":[1]},"mimetype":{"type":"string","enum":["image/jpeg","image/png"],"description":"The media type of the original image.","examples":["image/jpeg"]},"updated_date_unix":{"description":"The Unix timestamp, in seconds, when the product image was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"product_image_id":{"type":"string","minLength":20,"maxLength":20,"description":"The public ID of the product image affected by the request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"A human-readable description of the completed request.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"The Unix timestamp, in seconds, when the API response was created.","type":"integer","format":"unix-time","examples":[1675367500]}}}}}},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"description":"The request could not be completed.","content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}}}},"security":[{"RevCentAPIKey":[]}],"x-md-link":"markdown/mcp/operation/DeleteProductImage.md"}},"/products/search":{"get":{"summary":"Search Products","description":"Search products using a term or phrase. Returns up to 10 matches ordered by relevance, without pagination or a guarantee of finding every match.","operationId":"SearchProducts","x-api-permission-description":"Allows the search of products.","x-api-permission":"product:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Use a result’s id with GetProduct to retrieve product details. Products from different shops can share a name or SKU; use shop, when available, to help distinguish them.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchProducts.md","tags":["Products"],"parameters":[{"name":"search_term","description":"Search term or phrase. Leading and trailing whitespace is ignored; blank terms are rejected. If repeated, the final value is used. No other query parameters are supported. Searches product IDs, names, SKUs, your product references, additional IDs and metadata values.","in":"query","required":true,"schema":{"type":"string","examples":["USB HDD"]},"style":"form","x-additional-info":"When both single-value and nonempty multi-value query representations are supplied, the final multi-value search_term is used."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Product search matches and API call information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval of search results.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 product matches ordered by relevance. May be empty or contain fewer than 10 results and may not include every match. Pagination is not supported.","items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the product was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"type":"string","description":"The product description. May contain empty or historical text; omitted when unavailable.","examples":["Great USB for data storage."]},"highlights":{"type":"array","description":"Optional matching context for the six public highlight fields. Highlights may be incomplete and are omitted when no public highlights are available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["additional_id","id","internal_id","metadata","name","sku"],"description":"The search field where the highlighted match was found.","examples":["name"]},"values":{"type":"array","description":"Available matching text fragments for this field; the array may be empty.","items":{"type":"string","examples":["USB"],"description":"One matching text fragment."}},"score":{"type":"number","description":"Optional relevance information for this highlighted passage, distinct from the whole-result score. Omitted when unavailable or invalid; not limited to 0–1.","examples":[0]},"full_text":{"type":"string","description":"Available context snippet for a metadata match. Returned only when field is metadata; it is not necessarily the complete metadata text.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"20 character RevCent ID of the matching product. Use it with GetProduct for fuller details.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"internal_id":{"type":"string","description":"Your reference for this product, such as its ID in another system. May be empty; omitted when unavailable.","examples":["usb_hdd"]},"item_type":{"type":"string","const":"product","description":"The item type returned in the search result.","examples":["product"]},"name":{"type":"string","description":"The product name. May contain empty or historical text; omitted when unavailable.","examples":["USB HDD"]},"price":{"type":"number","description":"The catalog product price, when available. May be negative or fractional. Currency is not included in these search results.","examples":[89.99]},"score":{"type":"number","description":"Result relevance score; higher values indicate a closer match. Scores are not limited to 0–1. Defaults to 1 when absent; null or invalid values are omitted.","examples":[7.68]},"shop":{"type":"string","description":"The available associated shop name. May be empty; omitted when unavailable.","examples":["My Store"]},"sku":{"type":"string","description":"The product SKU. May contain empty or historical text; omitted when unavailable.","examples":["usb_hdd_sku"]},"url":{"type":"string","format":"uri","description":"Link to the RevCent product details page for the product identified by id.","examples":["https://revcent.com/user/product-details/6r8O5MLbw2t6n4v1lGqK"]}},"description":"A product search summary. Optional fields and matching context are included when available."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/sync":{"post":{"summary":"Sync Products","description":"Synchronize products from a connected WooCommerce shop, creating missing products and updating existing products according to the supplied options. Only one sync may run per shop at a time. For CSV imports or manual adjustments, use the product import tool at https://revcent.com/user/import-products.","operationId":"SyncProducts","x-api-permission-description":"Allows the synchronization of products from a WooCommerce shop.","x-api-permission":"product:sync","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/product#import-products","x-kb-name":"Import Products","x-md-link":"markdown/mcp/operation/SyncProducts.md","tags":["Products"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"third_party_shop":{"description":"The user third party shop ID, which RevCent will connect to and sync products. Required.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"project":{"description":"The user project ID, which RevCent will associate synced products with.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fulfillment_account":{"description":"The user fulfillment account ID which will be added to shippable products created during sync. Will not modify for existing shop products in RevCent.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_profile":{"description":"The user subscription profile ID which will be added to subscription products created during sync. Will not modify for existing shop products in RevCent.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_group":{"description":"The user product group ID in which products created during sync will be added to. Will not modify for existing shopproducts in RevCent.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["third_party_shop"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_sync_id":{"type":"string","description":"The product sync ID associated with the sync job initiated by this operation. Use this ID to check sync creation and completion via the GetProductSync operation.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"500":{"description":"The operation could not be completed.","content":{"application/json":{"schema":{"anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Product synchronization could not be started.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1074"],"examples":["E1074"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"error_message":{"type":"string","description":"Additional explanation of why product synchronization could not be started.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/products/sync/{product_sync_id}":{"get":{"summary":"Get Product Sync","description":"Retrieve the status and details of a product sync using the product_sync_id returned by SyncProducts.","operationId":"GetProductSync","x-api-permission-description":"Allows the retrieval of products.","x-api-permission":"product:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/product#import-products","x-kb-name":"Import Products","x-md-link":"markdown/mcp/operation/GetProductSync.md","tags":["Products"],"parameters":[{"in":"path","name":"product_sync_id","description":"20 character RevCent ID of the product sync to retrieve, returned by SyncProducts. No query parameters are accepted.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the product sync.","examples":["o1zXNj9RqztqbLKWGk4L"],"minLength":20,"maxLength":20}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested product sync and retrieval metadata. Optional fields and related-resource summaries are included when available.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not successful product updates.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the product sync was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","description":"20 character RevCent ID of the requested product sync.","minLength":20,"maxLength":20,"examples":["JrJb58ZgjYOmfv5gNyOr"]},"num_products":{"type":"integer","description":"The number of products prepared for syncing. This is not a count of successful product updates or a progress percentage. Zero is valid; unavailable or invalid counts are omitted.","minimum":0,"examples":[100]},"status":{"type":"string","description":"Sync status. Common values include pending, processing, completed and error; other historical values may be returned unchanged. completed means the sync finished, including failure or no-work outcomes, and does not guarantee successful product updates. Omitted when unavailable or empty.","examples":["completed"]},"message":{"type":"string","description":"Optional information about the sync outcome or progress. This text is not a stable machine-readable success indicator. Omitted when unavailable or empty.","examples":["Product sync finished."]},"third_party_shop":{"type":"object","additionalProperties":false,"description":"The available associated third-party shop ID/name summary; omitted when unavailable or invalid.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated third-party shop.","minLength":20,"maxLength":20,"examples":["5gNyJrJb58ZgjYOmfvOr"]},"name":{"type":"string","description":"The available nonempty third-party shop name, preserving its text.","examples":["My Store"]}}},"project":{"type":"object","additionalProperties":false,"description":"The available associated project ID/name summary; omitted when unavailable or invalid.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated project.","minLength":20,"maxLength":20,"examples":["YOmfrJb5vOr5gNyJ8Zgj"]},"name":{"type":"string","description":"The available nonempty project name, preserving its text.","examples":["My Project"]}}},"fulfillment_account":{"type":"object","additionalProperties":false,"description":"The available associated fulfillment account ID/name summary; omitted when unavailable or invalid.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated fulfillment account.","minLength":20,"maxLength":20,"examples":["5gNyJrJb58ZgjYOmfvOr"]},"name":{"type":"string","description":"The available nonempty fulfillment account name, preserving its text.","examples":["My Fulfillment Account"]}}},"product_group":{"type":"object","additionalProperties":false,"description":"The available associated product group ID/name summary; omitted when unavailable or invalid.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated product group.","minLength":20,"maxLength":20,"examples":["rJb58ZgjYO5gNyJmfvOr"]},"name":{"type":"string","description":"The available nonempty product group name, preserving its text.","examples":["My Product Group"]}}},"subscription_profile":{"type":"object","additionalProperties":false,"description":"The available associated subscription profile ID/name summary; omitted when unavailable or invalid.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated subscription profile.","minLength":20,"maxLength":20,"examples":["58ZgjYOmfvOr5gNyJrJb"]},"name":{"type":"string","description":"The available nonempty subscription profile name, preserving its text.","examples":["My Subscription Profile"]}}},"updated_date_unix":{"description":"When the product sync was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_groups":{"get":{"summary":"Get Product Groups","description":"Retrieve product-group summaries, newest first by creation time. Use GetProductGroup to retrieve a group with its product IDs.","operationId":"GetProductGroups","x-api-permission-description":"Allows the retrieval of product groups.","x-api-permission":"product_group:retrieve","x-ai-options":["mcp"],"x-additional-info":"Useful for retrieving product groups to get their IDs, which can then be used when creating or editing a product to assign that product to a specific group. This operation does not return the list of products within each group. Use the GetProductGroup operation to retrieve the details of a specific product group including the products within that group.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProductGroups.md","tags":["Product Groups"],"parameters":[{"description":"Maximum product groups per page, from 1 to 25. Required; there is no default. If repeated, the final value is used. Only limit and page are supported.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Page to retrieve, from 0 to 20. Page 0 selects page 1. Required; total_pages may exceed the maximum requestable page. If repeated, the final value is used. Only limit and page are supported.","schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"in":"query","name":"page","required":true,"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of product-group summaries and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this API call was initiated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"minimum":0,"maximum":25,"description":"Number of product groups in this page of results.","type":"integer","examples":[10]},"current_page":{"description":"Returned page number, from 1 to 20. A request for page 0 returns page 1.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"properties":{"created_date_unix":{"description":"The product group's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"description":"Product group description, when available. May be empty; omitted when unavailable.","type":"string","examples":["My group of products."]},"id":{"description":"20 character RevCent ID of the product group. Use it to assign products to the group or retrieve its details with GetProductGroup.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"Whether the product group is enabled, when available. Disabled groups are included with false; omitted when unavailable.","type":"boolean","examples":[true]},"name":{"description":"The saved product group name, which may be empty or contain historical text.","type":"string","examples":["My Product Group"]},"updated_date_unix":{"description":"The product group's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false},"type":"array","maxItems":25,"description":"Up to limit product-group summaries, newest first. May be empty, including when the requested page is beyond the available results. Product IDs are available through GetProductGroup."},"total_count":{"description":"Total number of available product groups, including disabled groups.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Number of pages calculated from total_count and limit. May exceed 20 even though the maximum requestable page is 20.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Product Group","description":"Create a Product Group, which will issue a unique Product Group ID.<br><br>Note: When creating a product group, if providing the 'products' array, any product ID's contained in the 'products' array will automatically be associated with the group.","operationId":"CreateProductGroup","x-api-permission-description":"Allows the creation of product groups.","x-api-permission":"product_group:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateProductGroup.md","tags":["Product Groups"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Product Group name. Must contain at least one non-whitespace character. Leading and trailing whitespace is trimmed before saving.","examples":["My Product Group"],"minLength":1},"description":{"type":"string","description":"The Product Group description.","examples":["This is my Product Group."]},"enabled":{"type":"boolean","description":"Whether the Product Group is enabled."},"products":{"type":"array","description":"The product(s) to associate with the Product Group.","items":{"type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_group_id":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"result":{"type":"string","examples":["Product Group created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_groups/{product_group_id}":{"get":{"summary":"Get A Product Group","description":"Retrieve a product group by its ID, including up to 50 available product IDs.","operationId":"GetProductGroup","x-api-permission-description":"Allows the retrieval of product groups.","x-api-permission":"product_group:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProductGroup.md","tags":["Product Groups"],"parameters":[{"in":"path","name":"product_group_id","description":"20 character RevCent ID of the product group to retrieve. No query parameters are supported.","required":true,"schema":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested product group, available product IDs and API call information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"When this API call was initiated, as a Unix timestamp in seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"The product group's creation timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"description":"Product group description, when available. May be empty; omitted when unavailable.","type":"string","examples":["My group of products."]},"id":{"description":"20 character RevCent ID of the requested product group.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"Whether the product group is enabled, when available. False indicates a disabled group; omitted when unavailable.","type":"boolean","examples":[true]},"name":{"description":"The saved product group name; may be empty or contain historical text.","type":"string","examples":["My Product Group"]},"products":{"description":"Up to 50 available product IDs, limited by credential access and potentially incomplete. An empty or short array does not establish that the group has no other products. Use GetProduct for individual product details.","type":"array","items":{"description":"20 character RevCent ID of a product. Use it with GetProduct for individual product details.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"maxItems":50},"updated_date_unix":{"description":"The product group's last update timestamp in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Product Group","description":"Update a product group. Only supplied fields are updated. If products is supplied, it replaces the group’s product membership; an empty array removes all members.","operationId":"EditProductGroup","x-api-permission-description":"Allows the editing of product groups.","x-api-permission":"product_group:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditProductGroup.md","tags":["Product Groups"],"parameters":[{"in":"path","name":"product_group_id","description":"The Product Group ID","required":true,"schema":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Product Group name. Must contain at least one non-whitespace character. Leading and trailing whitespace is trimmed before saving. Omit to preserve the current name.","minLength":1,"examples":["Example"]},"description":{"type":"string","description":"The Product Group description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the Product Group is enabled."},"products":{"type":"array","description":"All product(s) to associate with the Product Group. Only provide the 'products' array if it contains the ID's of all products you want in the group. Any product ID's not included in the 'products' array will be disassociated from the group if previously associated. If the array is provided and is empty, all associated products will be disassociated from the group.","items":{"type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_group_id":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/product_groups/{product_group_id}/delete":{"post":{"summary":"Delete A Product Group","description":"Delete a specific product group using the product group ID and delete path.<br><br>Any product(s) associated with the product group will be disassociated from the group.","operationId":"DeleteProductGroup","x-api-permission-description":"Allows the deletion of product groups.","x-api-permission":"product_group:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteProductGroup.md","tags":["Product Groups"],"parameters":[{"in":"path","name":"product_group_id","description":"The Product Group ID","required":true,"schema":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"product_group_id":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"result":{"type":"string","examples":["Product group deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects":{"get":{"summary":"Get Projects","description":"Retrieve project summaries with names and descriptions, ordered by creation time from newest to oldest. Use GetProject with a returned project ID to retrieve associated entities.","operationId":"GetProjects","x-api-permission-description":"Allows the retrieval of projects.","x-api-permission":"project:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProjects.md","tags":["Projects"],"parameters":[{"description":"Required maximum number of projects per page, from 1 to 25. There is no default; provide this parameter explicitly. Only limit and page query parameters are accepted.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 also selects page 1. If repeated, the final value is used. Only the first 20 pages are accessible, even when total_pages is larger. At limit 25, this covers the first 500 projects in the ordered selection; date ranges and other filters are not supported.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Project summaries and pagination information for the account.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The actual number of projects returned in results. May be below limit, including when selected projects are unavailable.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as page 1. Requests above page 20 are rejected.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the project was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the project. Use this ID with GetProject to retrieve associated entities.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"type":"string","description":"Project name. Empty, whitespace-only and long historical text is preserved.","examples":["My Project"]},"description":{"type":"string","description":"Project description. Empty, whitespace-only and long historical text is preserved.","examples":["This is my project."]},"updated_date_unix":{"description":"When the project was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to limit project summaries, ordered by creation time from newest to oldest. May be empty or shorter than limit when some projects are unavailable. Use GetProject for associated entities."},"total_count":{"description":"Total number of matching projects for the account, including projects unavailable in the returned results. This total is not capped by the accessible page range.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"total_count divided by limit, rounded up; zero when total_count is zero. May exceed 20 even though only pages through 20 are accessible. At limit 25, only the first 500 projects in the ordered selection can be accessed. No date ranges or other filters are supported.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Project","description":"Create a project in RevCent.","operationId":"CreateProject","x-api-permission-description":"Allows the creation of projects.","x-api-permission":"project:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateProject.md","tags":["Projects"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The project name.","type":"string","examples":["My Project"]},"description":{"description":"The project description.","type":"string","examples":["The mystore.com project."]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_id":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["Project created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects/{project_id}":{"get":{"summary":"Get A Project","description":"Retrieve a project with its name, description and summaries of associated resources. Use the corresponding Get operation for full resource details. No query parameters are accepted.","operationId":"GetProject","x-api-permission-description":"Allows the retrieval of projects.","x-api-permission":"project:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProject.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_id","description":"20 character RevCent ID of the project to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Project details and associated resource summaries.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval.","type":"integer","examples":[1],"enum":[1]},"created_date_unix":{"description":"Unix timestamp in seconds when the project was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested project.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"type":"string","description":"Project name; may be empty.","examples":["My Project"]},"entities":{"type":"object","additionalProperties":false,"description":"Associated resources grouped by type, with summaries in first-association order. Each resource is counted once per group. Product summaries are limited to 25; other groups are limited to 100. Counts may exceed returned items because of these limits or unavailable summaries. Groups have no separate pagination. Use a returned id with the corresponding Get operation, or key for GetKeyValue when it meets that operation’s path requirements.","properties":{"ai_assistant":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["r8N5kLm9pQW3vZ2Xy1aB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My AI Assistant"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my AI Assistant."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetAIAssistant for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"ai_prompt":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["2Xy15mBrvZ8W39pQkLNa"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My AI Prompt"]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetAIPrompt for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"ai_voice_agent":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["kLN5m9pQW3vZ2Xy1aBr8"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My AI Voice Agent"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my AI Voice Agent."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetAIVoiceAgent for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"ai_voice_snippet":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["9pQkLN5mBr8W3vZ2Xy1a"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My AI Voice Snippet"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my AI Voice Snippet."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetAIVoiceSnippet for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"bin_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Bin Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Bin Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetBinProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"campaign":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["WLNa9pQk23rvZ8Xy15mB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Campaign"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Campaign."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetCampaign for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"customer_group":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["NaZQk23r9vB8Xy15mWLp"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Customer Group"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Customer Group."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetCustomerGroup for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"customer_portal":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["3rBZ8pQk2Xy15mWLNa9v"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Customer Portal"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Customer Portal."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetCustomerPortal for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"email_template":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["a9vpQk23rXZ8y15mWLNB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Email Template"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Email Template."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetEmailTemplate for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"fulfillment_account":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["9Z8pQk215mWLNa3rXyvB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Fulfillment Account"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Fulfillment Account."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetFulfillmentAccount for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"function":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Function"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Function."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetFunction for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"gateway":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Gateway"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Gateway."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetUserGateway for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"gateway_group":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Gateway Group"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Gateway Group."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetGatewayGroup for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"key_value":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"key":{"type":"string","description":"Key Value name, preserved as provided. Use it with GetKeyValue when it meets that operation’s path requirements.","examples":["my_key_value"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Key Value."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use key with GetKeyValue for an individual resource when its literal key meets that operation's path rules.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"payment_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Payment Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Payment Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetPaymentProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"paypal_account":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My PayPal Account"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my PayPal Account."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetPayPalAccount for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"product":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["15mWLNa9vBZ8pQrXyk23"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Product"]},"sku":{"type":"string","description":"Product SKU; may be empty. Omitted when unavailable.","examples":["sku_1102"]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"minItems":0,"maxItems":25,"description":"Up to 25 available summaries in first-association order. May be empty or shorter than count. Use id with GetProduct for full resource details."},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"product_group":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["rXy15mWLNaZ8pQk239vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Product Group"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Product Group."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetProductGroup for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"shipping_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Shipping Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Shipping Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetShippingProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"site":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Site"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Site."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetSite for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"smtp_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My SMTP Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my SMTP Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetSMTPProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"subscription_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Subscription Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Subscription Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetSubscriptionProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"tax_profile":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["LNa9vpQkZXy15mW23rBC"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Tax Profile"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Tax Profile."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetTaxProfile for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Third Party Integration"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Third Party Integration."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetUserThirdPartyIntegration for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"third_party_shop":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Third Party Shop"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Third Party Shop."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetUserShop for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"tracking_domain":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My Tracking Domain"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my Tracking Domain."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetTrackingDomain for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}},"url_parameter_set":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated resource.","minLength":20,"maxLength":20,"examples":["Z8pQk23rXy15mWLNa9vB"]},"name":{"type":"string","description":"Resource name; may be empty. Omitted when unavailable.","examples":["My URL Parameter Set"]},"description":{"type":"string","description":"Resource description; may be empty. Omitted when unavailable.","examples":["This is my URL Parameter Set."]},"created_date_unix":{"description":"Unix timestamp in seconds when the resource was created. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the resource was last updated. Omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"description":"Up to 100 available summaries in first-association order. May be empty or shorter than count. Use id with GetUrlParameterSet for full resource details.","maxItems":100},"count":{"type":"integer","description":"Total distinct associated resources eligible for retrieval, including those without an available summary. May exceed the number of returned items.","examples":[5],"minimum":0}}}}},"description":{"type":"string","description":"Project description; may be empty.","examples":["This is my project."]},"updated_date_unix":{"description":"Unix timestamp in seconds when the project was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"title":"APICallResponseInfo","type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Project","description":"Edit a specific project using the project ID. Only supplied fields are updated.","operationId":"EditProject","x-api-permission-description":"Allows the editing of projects.","x-api-permission":"project:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditProject.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_id","description":"The project ID.","required":true,"schema":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The project name.","type":"string","examples":["Example"]},"description":{"description":"The project description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_id":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects/{project_id}/delete":{"post":{"summary":"Delete A Project","description":"Delete an existing project.","operationId":"DeleteProject","x-api-permission-description":"Allows the deletion of projects.","x-api-permission":"project:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteProject.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_id","description":"The project ID.","required":true,"schema":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_id":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects/{project_id}/associate_entity":{"post":{"summary":"Associate Entity with Project","description":"Associate an existing entity with a project.","operationId":"ProjectAssociateEntity","x-api-permission-description":"Allows the association of an entity with a project.","x-api-permission":"project:associate_entity","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ProjectAssociateEntity.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_id","description":"The project ID.","required":true,"schema":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"entity_type":{"type":"string","description":"The type of entity for the project association.","examples":["campaign"],"enum":["campaign","ai_assistant","ai_voice_agent","ai_voice_snippet","ai_prompt","key_value","bin_profile","customer_group","customer_portal","email_template","fulfillment_account","product","product_group","custom_function","gateway","gateway_group","smtp_profile","paypal_account","payment_profile","shipping_profile","site","subscription_profile","url_parameter_set","third_party_shop","third_party_integration","tracking_domain","tax_profile"]},"entity_id":{"type":"string","description":"A 20 character ID of the entity to be associated with the project. If associating a key_value use the 'key' instead of ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["entity_id","entity_type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_id":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"entity_type":{"type":"string","description":"The type of entity for the project association.","examples":["campaign"],"enum":["campaign","ai_assistant","ai_voice_agent","ai_voice_snippet","ai_prompt","key_value","bin_profile","customer_group","customer_portal","email_template","fulfillment_account","product","product_group","custom_function","gateway","gateway_group","smtp_profile","paypal_account","payment_profile","shipping_profile","site","subscription_profile","url_parameter_set","third_party_shop","third_party_integration","tracking_domain","tax_profile"]},"entity_id":{"type":"string","description":"A 20 character ID of the entity that was associated with the project. If disassociating a key_value use the 'key' instead of ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects/{project_id}/disassociate_entity":{"post":{"summary":"Disassociate Entity with Project","description":"Disassociate an existing entity from a project.","operationId":"ProjectDisassociateEntity","x-api-permission-description":"Allows the disassociation of an entity from a project.","x-api-permission":"project:disassociate_entity","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ProjectDisassociateEntity.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_id","description":"The project ID.","required":true,"schema":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"entity_type":{"type":"string","description":"The type of entity for the project disassociation.","examples":["campaign"],"enum":["campaign","ai_assistant","ai_voice_agent","ai_voice_snippet","ai_prompt","key_value","bin_profile","customer_group","customer_portal","email_template","fulfillment_account","product","product_group","custom_function","gateway","gateway_group","smtp_profile","paypal_account","payment_profile","shipping_profile","site","subscription_profile","url_parameter_set","third_party_shop","third_party_integration","tracking_domain","tax_profile"]},"entity_id":{"type":"string","description":"A 20 character ID of the entity that was associated with the project. If associating a key_value use the 'key' instead of ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["entity_id","entity_type"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_id":{"type":"string","description":"A 20 character project ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"entity_type":{"type":"string","description":"The type of entity for the project disassociation.","examples":["campaign"],"enum":["campaign","ai_assistant","ai_voice_agent","ai_voice_snippet","ai_prompt","key_value","bin_profile","customer_group","customer_portal","email_template","fulfillment_account","product","product_group","custom_function","gateway","gateway_group","smtp_profile","paypal_account","payment_profile","shipping_profile","site","subscription_profile","url_parameter_set","third_party_shop","third_party_integration","tracking_domain","tax_profile"]},"entity_id":{"type":"string","description":"A 20 character ID of the entity that was disassociated from the project.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/projects/search":{"get":{"summary":"Search Projects","description":"Search projects by project ID, name, description or associated resource IDs. Provide a nonblank search_term, at least one entity-ID filter, or both. Multiple entity filters combine with AND. Returns up to 10 results; pagination is not supported.","operationId":"SearchProjects","x-api-permission-description":"Allows the search of projects using a search term or entity type ID.","x-api-permission":"project:search","x-ai-options":["mcp"],"x-additional-info":"Useful for finding a project(s) by name or description when you do not know the project ID. Also useful to search for projects with a specific entity associated using an entity type ID.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchProjects.md","tags":["Projects"],"parameters":[{"name":"search_term","description":"Text to match against project ID, name or description. Optional when an entity-ID filter is provided. If supplied, it must be nonblank after trimming. For repeated query parameters, the final value is used. Only the listed query parameters are accepted.","in":"query","required":false,"schema":{"type":"string","examples":["mystore.com"]},"style":"form","x-additional-info":"The search engine analyzes the following fields:<br><table class=\"table table-bordered\"><thead class=\"small\"><tr><th>Field</th> <th>Description</th></tr></thead> <tbody><tr><td>id</td> <td>The RevCent ID of the project.</td></tr> <tr><td>name</td> <td>The name of the project.</td></tr> <tr><td>description</td> <td>The description of the project.</td></tr></tbody></table>"},{"name":"campaign_id","description":"20 character RevCent ID of a Campaign associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"ai_assistant_id","description":"20 character RevCent ID of an AI Assistant associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"ai_voice_agent_id","description":"20 character RevCent ID of an AI Voice Agent associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"ai_voice_snippet_id","description":"20 character RevCent ID of an AI Voice Snippet associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"ai_prompt_id","description":"20 character RevCent ID of an AI Prompt associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"key_value_id","description":"20 character RevCent ID of an associated Key Value, if already known. Key names returned by Key Value retrieval cannot be used here; those operations do not provide this ID. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"bin_profile_id","description":"20 character RevCent ID of a Bin Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"customer_group_id","description":"20 character RevCent ID of a Customer Group associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"customer_portal_id","description":"20 character RevCent ID of a Customer Portal associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"email_template_id","description":"20 character RevCent ID of an Email Template associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"fulfillment_account_id","description":"20 character RevCent ID of a Fulfillment Account associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"product_id","description":"20 character RevCent ID of a Product associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"product_group_id","description":"20 character RevCent ID of a Product Group associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"custom_function_id","description":"20 character RevCent ID of a Function associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"gateway_id","description":"20 character RevCent ID of a User Gateway associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"gateway_group_id","description":"20 character RevCent ID of a Gateway Group associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"smtp_profile_id","description":"20 character RevCent ID of a SMTP Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"paypal_account_id","description":"20 character RevCent ID of a PayPal Account associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"payment_profile_id","description":"20 character RevCent ID of a Payment Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"shipping_profile_id","description":"20 character RevCent ID of a Shipping Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"subscription_profile_id","description":"20 character RevCent ID of a Subscription Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"url_parameter_set_id","description":"20 character RevCent ID of a URL Parameter Set associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"site_id","description":"20 character RevCent ID of a Site associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"third_party_shop_id","description":"20 character RevCent ID of a User Third Party Shop associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"third_party_integration_id","description":"20 character RevCent ID of a User Third Party Integration associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"tracking_domain_id","description":"20 character RevCent ID of a Tracking Domain associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"},{"name":"tax_profile_id","description":"20 character RevCent ID of a Tax Profile associated with the project. All supplied entity filters must match. Values are trimmed and must be valid IDs.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Matching project summaries and optional relevance information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 project summaries in descending relevance order. Results may be empty or fewer than 10 and do not represent an exhaustive list of matches. No pagination is available. A search match does not guarantee that the project is available through GetProject.","items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the project was created.","type":"integer","format":"unix-time","examples":[1675367500]},"description":{"type":"string","description":"Available project description; may be empty. Omitted when unavailable.","examples":["The mystore.com payment profile was updated for the project to now route by card type."]},"highlights":{"description":"Optional matching text fragments from the project ID, name or description. May be incomplete or omitted.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["description","id","name"],"description":"The search field where the highlighted match was found.","examples":["name"]},"values":{"type":"array","description":"Matching text fragments for this field; may be empty.","items":{"type":"string","examples":["My Project"]}},"score":{"type":"number","description":"Optional relevance score for this highlighted passage, separate from the whole-result score.","examples":[0]}}},"type":"array"},"id":{"description":"20 character RevCent ID of the project.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"item_type":{"type":"string","const":"project","description":"The item type returned in the search result.","examples":["project"]},"name":{"type":"string","description":"Available project name; may be empty. Omitted when unavailable.","examples":["My Project"]},"score":{"type":"number","description":"Relevance score for the whole result; higher values indicate closer matches. Distinct from individual highlight scores and not limited to 0–1. May be omitted when unavailable.","examples":[7.68]},"url":{"type":"string","format":"uri","description":"RevCent project-details URL for this result.","examples":["https://revcent.com/user/project-details/gYQYYJlMXYHXXL709WlR"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/project_notes":{"get":{"summary":"Get Project Notes","description":"Retrieve project-note summaries, including titles and metadata, within a date range. Optionally filter by project or metadata. Use GetProjectNote with a returned note ID to retrieve full note content.","operationId":"GetProjectNotes","x-api-permission-description":"Allows the retrieval of project notes.","x-api-permission":"project_note:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProjectNotes.md","tags":["Projects"],"parameters":[{"description":"Required start of the note creation date range, as a Unix timestamp in seconds. Inclusive. Must not be after date_end; the range must be shorter than 95 days.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required end of the note creation date range, as a Unix timestamp in seconds. Exclusive. May equal date_start, producing an empty interval; the range must be shorter than 95 days.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of notes per page, from 1 to 25. There is no default; provide this parameter explicitly.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 also selects page 1. If total_pages exceeds 20, narrow the date range or filters to access other matches.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"name":"project_filter","in":"query","description":"Return notes associated with any of the supplied projects. Accepts up to 50 distinct 20 character RevCent IDs, supplied as repeated project_filter query parameters.","required":false,"schema":{"type":"array","items":{"type":"string","description":"20 character RevCent ID of a project whose notes should be included.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}},"style":"form","explode":true},{"description":"Filter notes by up to 50 metadata name/value pairs. Values for the same name are alternatives; different names must all match. Supports repeated metadata_filter parameters containing JSON objects or indexed bracket parameters such as metadata_filter[0][name] and metadata_filter[0][value]. Names are 1–100 characters and values are 1–255 characters; text is preserved. Use METADATA_NAME_EXISTS as the value to require the name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Project-note summaries and pagination information for the requested date range and filters.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The actual number of notes returned in results. This may be below the requested limit, including when some matching notes are unavailable.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page, with page 0 returned as page 1. Only pages 1–20 are accessible.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the note was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the project note. Use this ID with GetProjectNote to retrieve full note content.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"project":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated project.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"type":"string","description":"Project name. May be empty or contain only whitespace.","examples":["My Project"]}},"description":"Associated project ID and name, when available."},"title":{"type":"string","description":"Project-note title, 1–100 characters. Omitted when unavailable or invalid; returned text is preserved.","maxLength":100,"minLength":1,"examples":["Campaign Created"]},"updated_date_unix":{"description":"When the note was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"metadata":{"maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs associated with the note, preserving text, order and duplicates. May be empty and may not include all metadata.","items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array"}}},"type":"array","maxItems":25,"description":"Project-note summaries, ordered by creation time from newest to oldest. Includes metadata but not full note content. A page may be empty or contain fewer than limit notes. Use GetProjectNote with a returned note ID to retrieve full content."},"total_count":{"description":"The total number of notes matching all active date, project and metadata filters. This can include matches unavailable in the returned results.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"The total number of pages, calculated by dividing total_count by limit and rounding up. May exceed 20, although only pages through 20 are accessible; narrow the date range or filters to reach other matches. Zero when total_count is zero.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Project Note","description":"Create a project note in RevCent.","operationId":"CreateProjectNote","x-api-permission-description":"Allows the creation of project notes.","x-api-permission":"project_note:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateProjectNote.md","tags":["Projects"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"project_id":{"type":"string","description":"A 20 character project ID that the note is associated with.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"title":{"description":"The project note title. It is recommended to keep the title small, but concise and descriptive enough to convey the main point of the note. The title is meant for quick viewing when retrieving a list of notes, allowing the user/AI to quickly understand the context of each note and potentially retrieve the note content via the GetProjectNote operation.","type":"string","examples":["Campaign Created"],"minLength":1,"maxLength":100},"content":{"description":"The project note content.","type":"string","examples":["Created the mystore.com campaign and associated with the mystore.com project."],"minLength":1,"maxLength":5000},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["project_update_type"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["payment_profile"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a project note in the form of an array of name/value pairs. This can be useful for storing additional information about the note in a structured format that can be easily filtered when retrieving notes."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["project_id","title","content"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_note_id":{"type":"string","description":"A 20 character project note ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["Project note created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/project_notes/{project_note_id}":{"get":{"summary":"Get A Project Note","description":"Retrieve a project note by ID, including its available full content, metadata and associated project summary.","operationId":"GetProjectNote","x-api-permission-description":"Allows the retrieval of project notes.","x-api-permission":"project_note:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetProjectNote.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_note_id","description":"20 character RevCent ID of the project note to retrieve. No query parameters are accepted.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the project note.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested project note and API-call metadata. Optional fields are included when available.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The retrieval response code. A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the note was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested project note.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"project":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated project.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"type":"string","description":"Project name. May be empty or contain only whitespace.","examples":["My Project"]}},"description":"Associated project ID and name, when available."},"title":{"type":"string","description":"The available note title, 1–100 characters. Omitted when unavailable or invalid; text and whitespace are preserved.","maxLength":100,"minLength":1,"examples":["Campaign Created"]},"content":{"type":"string","description":"The available full note content, 1–5,000 characters. Omitted when unavailable or invalid; text and whitespace are preserved.","maxLength":5000,"minLength":1,"examples":["Created the mystore.com campaign and associated with the mystore.com project."]},"metadata":{"maxItems":50,"description":"Up to the first 50 valid name/value pairs, preserving text, order and duplicates. May be empty and does not guarantee the complete metadata collection.","items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name, 1–100 characters. Text and whitespace are preserved.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"The paired metadata value, 1–255 characters. Text and whitespace are preserved.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array"},"updated_date_unix":{"description":"When the note was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Project Note","description":"Edit a specific project note using the project note ID. Only supplied fields are updated.","operationId":"EditProjectNote","x-api-permission-description":"Allows the editing of project notes.","x-api-permission":"project_note:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditProjectNote.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_note_id","description":"The project note ID.","required":true,"schema":{"type":"string","description":"A 20 character project note ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"project_id":{"type":"string","description":"A 20 character project ID that the note is associated with.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"title":{"description":"The project note title. It is recommended to keep the title small, but concise and descriptive enough to convey the main point of the note. The title is meant for quick viewing when retrieving a list of notes, allowing the user/AI to quickly understand the context of each note and potentially retrieve the note content via the GetProjectNote operation.","type":"string","examples":["Campaign Created"],"minLength":1,"maxLength":100},"content":{"description":"The project note content.","type":"string","examples":["Created the mystore.com campaign and associated with the mystore.com project."],"minLength":1,"maxLength":5000},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["project_update_type"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["payment_profile"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a project note in the form of an array of name/value pairs. This can be useful for storing additional information about the note in a structured format that can be easily filtered when retrieving notes. Note: Providing metadata when editing a note will overwrite the existing metadata for the note, it will not append to it."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_note_id":{"type":"string","description":"A 20 character project note ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["Project note edited."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/project_notes/{project_note_id}/delete":{"post":{"summary":"Delete A Project Note","description":"Delete an existing project note.","operationId":"DeleteProjectNote","x-api-permission-description":"Allows the deletion of project notes.","x-api-permission":"project_note:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteProjectNote.md","tags":["Projects"],"parameters":[{"in":"path","name":"project_note_id","description":"The project note ID.","required":true,"schema":{"type":"string","description":"A 20 character project note ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"project_note_id":{"type":"string","description":"A 20 character project note ID.","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/project_notes/search":{"get":{"summary":"Search Project Notes","description":"Search project notes by ID, title, content or metadata values. Optionally limit results to one project.","operationId":"SearchProjectNotes","x-api-permission-description":"Allows the search of project notes using a search term.","x-api-permission":"project_note:search","x-ai-options":["mcp"],"x-additional-info":"Useful for finding a project note(s) when you do not know the project note ID or wish to search for project notes by title, content and/or metadata.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchProjectNotes.md","tags":["Projects"],"parameters":[{"name":"search_term","description":"Required search term or phrase to match note IDs, titles, content or metadata values. Leading and trailing whitespace is ignored; the result must be nonblank. If repeated, the final value is used. Only search_term and optional project_id are accepted; there are no pagination or date-range parameters.","in":"query","required":true,"schema":{"type":"string","examples":["The payment profile was updated"]},"style":"form","x-additional-info":"The search engine analyzes the following fields:<br><table class=\"table table-bordered\"><thead class=\"small\"><tr><th>Field</th> <th>Description</th></tr></thead> <tbody><tr><td>id</td> <td>The RevCent ID of the project note.</td></tr> <tr><td>title</td> <td>The title of the project note.</td></tr> <tr><td>content</td> <td>The content of the project note.</td></tr> <tr><td>metadata</td> <td>All metadata values within a project note.</td></tr></tbody></table>"},{"name":"project_id","description":"20 character RevCent ID of a project whose notes should be searched. Optional; omit to search across your projects. Leading and trailing whitespace is ignored. If repeated, the final value is used.","in":"query","required":false,"schema":{"type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"],"description":"20 character RevCent ID of the project."},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Matching project notes and API-call metadata.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval of search results.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to ten matches in descending relevance order. Results may be empty or contain fewer than ten entries and do not represent an exhaustive paginated search. Use result id with GetProjectNote for details when available.","items":{"type":"object","additionalProperties":false,"properties":{"content":{"type":"string","description":"Available note content, which may contain the full text rather than a snippet. Empty and long historical text is preserved. Omitted when unavailable.","examples":["The mystore.com payment profile was updated for the project to now route by card type."]},"created_date_unix":{"description":"When the note was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"highlights":{"description":"Optional matching context for id, title, content and metadata. Highlights may be incomplete and are omitted when no public highlights are available.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["content","id","metadata","title"],"description":"The search field where the highlighted match was found.","examples":["title"]},"values":{"type":"array","description":"Available matching text fragments for this field; the array may be empty.","items":{"type":"string","examples":["Payment"]}},"score":{"type":"number","description":"Optional relevance information for this highlighted passage, distinct from the whole-result score. Omitted when unavailable or invalid; not limited to 0–1.","examples":[0]},"full_text":{"type":"string","description":"Available metadata-only match context, returned only for metadata highlights. Not guaranteed to contain the complete metadata value and independent of the limited returned metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array"},"id":{"description":"20 character RevCent ID of the project note. Use this ID with GetProjectNote to retrieve its details.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"item_type":{"type":"string","const":"project_note","description":"The item type returned in the search result.","examples":["project_note"]},"metadata":{"maxItems":50,"description":"Up to the first 50 valid name/value pairs, preserving text, order and duplicates. May be absent or empty and is not guaranteed to contain the complete metadata collection.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}},"type":"array"},"project":{"type":"object","additionalProperties":false,"description":"Associated project ID and name, when available.","properties":{"id":{"description":"20 character RevCent ID of the associated project.","type":"string","minLength":20,"maxLength":20,"examples":["Ug89mpRj78k6vnbJom00"]},"name":{"type":"string","description":"Project name. May be empty or contain only whitespace.","examples":["mystore.com Onboarding"]}}},"score":{"type":"number","description":"Overall result relevance, distinct from individual highlight scores. Higher values indicate greater relevance; scores are not limited to 0–1. May be omitted when unavailable.","examples":[7.68]},"title":{"type":"string","description":"Available note title. Empty and long historical text is preserved. Omitted when unavailable.","examples":["Updated Payment Profile"]},"url":{"type":"string","format":"uri","description":"The RevCent project-note-details URL identifying this result's id.","examples":["https://revcent.com/user/project-note-details/gYQYYJlMXYHXXL709WlR"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales":{"get":{"summary":"Get Sales","description":"Retrieve a page of sales, ordered by creation time from newest to oldest. Each sale includes available customer, product and payment summaries.","operationId":"GetSales","x-api-permission-description":"Allows the retrieval of sales.","x-api-permission":"sale:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The elapsed date range must be strictly shorter than 95 days. When customer_id is supplied, dates remain required and validated but do not restrict results. Only the first 20 pages are accessible.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSales.md","tags":["Sales"],"parameters":[{"description":"Required start of the sale creation-date range, as Unix seconds, inclusive. date_end must be at or after this value and less than 95 elapsed days later. With customer_id, dates are still required and validated but do not restrict results.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required end of the sale creation-date range, as Unix seconds, exclusive. Equal endpoints are accepted. The elapsed range must be strictly shorter than 95 days. With customer_id, dates do not restrict results.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum sales per page, from 1 to 25. There is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Use 1 for the first page; 0 also selects page 1. Pages above 20 are not accessible even when total_pages is larger.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by associated campaign IDs. Supply up to 50 distinct 20 character RevCent IDs using repeated parameters.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by up to 50 three-letter ISO 4217 currency codes. Codes are treated as uppercase.","name":"currency_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"description":"Filter by associated shop IDs. Supply up to 50 distinct 20 character RevCent IDs using repeated parameters.","name":"shop_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"payment_type_filter","in":"query","description":"To filter items based on one or more payment types.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"description":"Filter by one or more listed sale-status categories. Values within this filter use OR, including fraud and chargeback; different filters use AND. These query values differ from the display strings in results[].status.","name":"status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["nocapture","captured","partialcapture","settled","refund","void","cancelled","fraud_alert","fraud","chargeback","pending_payment"],"examples":["captured","pending_payment"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Names contain 1–100 characters and values 1–255. Values for the same name combine with OR; different names combine with AND. Use METADATA_NAME_EXISTS as the value to match the name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose sales to retrieve. When supplied, the required dates are validated but do not restrict results. Other filters and access scope still apply.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Sale summaries and pagination information for the selected filters.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of sales returned in results.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Current page number, from 1 to 20. A submitted page of 0 selects page 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The sale's 20 character RevCent ID. Use GetSale for its details.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"amount":{"description":"Gross payments for the sale, matching amount_gross; distinct from the order total.","type":"number","format":"float","examples":[129.99]},"amount_original_total":{"description":"The original order total including products, shipping and tax before discounts.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current order total reflecting discounts and refunds; distinct from gross payments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Gross payments after recorded refunds.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net payments after recorded refunds and processor fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The recorded processor-fee amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The amount awaiting further payment, including outstanding trials and salvage payments.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"The outstanding salvage-payment amount.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID, returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"cancelled":{"type":"boolean","description":"Whether the sale has been cancelled.","examples":[false]},"customer":{"type":"object","description":"The customer response object contains the details of the customer related to the item.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Available country text, normally an ISO 3166-1 alpha-3 code; historical text is preserved.","examples":["USA"]},"email":{"type":"string","description":"Available email text, including historical values; omitted when empty or unavailable.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for this resource.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"has_fraud_alert":{"type":"boolean","description":"Whether the sale has a fraud alert.","examples":[false]},"has_paypal_dispute":{"type":"boolean","description":"Whether the sale has a PayPal dispute.","examples":[false]},"internal_id":{"description":"Your own reference for this resource.","type":"string","examples":["123456"]},"iso_currency":{"description":"The sale's currency designation, normally a three-letter ISO 4217 code. Available historical text is preserved.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"ip_address":{"type":"string","description":"The IP address associated with the sale.","examples":["192.168.1.1"]},"notes":{"description":"Up to 50 available notes from a bounded selection, not a complete note history.","items":{"additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20 character RevCent note ID.","type":"string","minLength":20,"maxLength":20,"examples":["9r0NrKQ864FaOrmOYmQn"]},"text":{"type":"string","description":"Available nonempty note text, including historical text longer than 255 characters.","minLength":1,"examples":["Customer called and asked to about their order."]},"username":{"type":"string","description":"The username of the user who created the note.","examples":["JohnD"]},"first_name":{"type":"string","description":"The first name of the user who created the note.","examples":["John"]},"last_name":{"type":"string","description":"The last name of the user who created the note.","examples":["Doe"]},"employee_id":{"description":"A 20 character RevCent user ID.","type":"string","minLength":20,"maxLength":20,"examples":["mWwZ8KyrOLNOOdbbdUbQ"]},"customer_note_related_type":{"type":"string","description":"The item type that the note was created for.","examples":["sale"]},"customer_note_related_id":{"type":"string","description":"The item type ID that the note was created for.","minLength":20,"maxLength":20,"examples":["O0O0LON20nTaNQ6gg6Lm"]}},"type":"object"},"type":"array","maxItems":50},"ship_to":{"type":"object","additionalProperties":false,"description":"The ship to response object contains the details of the shipping destination related to the item.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Available country text, normally an ISO 3166-1 alpha-3 code; historical text is preserved.","examples":["USA"]},"email":{"type":"string","description":"Available email text, including historical values; omitted when empty or unavailable.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"payment_attempt_status":{"description":"Available payment-attempt flags and a bounded selection of card or wallet attempts; not a complete payment history.","additionalProperties":false,"properties":{"payment_attempted":{"type":"boolean","description":"Whether the sale has a payment attempt.","examples":[false]},"payment_success":{"type":"boolean","description":"Whether the sale was successfully paid.","examples":[false]},"payment_declined":{"type":"boolean","description":"Whether the sale has a payment attempt that was declined.","examples":[false]},"payment_fail":{"type":"boolean","description":"Whether the sale has a payment attempt that was unsuccessful","examples":[false]},"payment_held":{"type":"boolean","description":"Whether the sale has a payment attempt that was held.","examples":[false]},"payment_error":{"type":"boolean","description":"Whether the sale has a payment attempt that resulted in an error.","examples":[false]},"payment_attempts_num":{"type":"integer","description":"Number of attempts in the selected subset of up to 50, before unavailable summaries are omitted. May exceed payment_attempts.length and is not a complete historical count.","examples":[1]},"payment_attempts":{"description":"Up to 50 available card or wallet payment attempts from the selected history, in its existing order. May be incomplete.","items":{"description":"An available card or wallet payment-attempt summary.","additionalProperties":false,"properties":{"attempt_date":{"description":"The payment attempt date in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"attempt_date_unix":{"description":"The payment attempt date in unix timestamp format.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"transaction":{"description":"An individual payment attempt.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"amount":{"description":"The transaction amount.","type":"number","format":"float","examples":[129.99]},"gateway":{"description":"The transaction gateway.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"description":"The gateway name.","type":"string","examples":["Authorize.net"]}},"type":"object"},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"The normalized card network used by the wallet.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"The normalized funding source reported by the wallet.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"}},"type":"object"},"customer_card":{"type":["object","null"],"additionalProperties":false,"description":"Available saved-card summary for this attempt; null when unavailable, including wallet attempts without a related card summary.","properties":{"id":{"description":"A 20 character RevCent saved card ID.","type":"string","minLength":20,"maxLength":20,"examples":["ALAGkvj0O7u5rdmVggQ7"]},"type":{"type":"string","description":"Card type.","examples":["visa"]},"first_6":{"type":"string","description":"Card first 6, a.k.a. BIN.","examples":["424242"]},"last_4":{"type":"string","description":"Card last 4.","examples":["4242"]},"expiry_date":{"type":"string","description":"Card expiration date in MM/YY format.","examples":["12/29"]},"expiry_month":{"type":"string","description":"Card expiration month in MM format.","examples":["12"]},"expiry_year":{"type":"string","description":"Card expiration year in YYYY format.","examples":["2029"]},"is_default":{"type":"boolean","description":"Whether the card is set as the customers default payment method.","examples":[true]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}}},"type":"object"},"type":"array","maxItems":50}},"type":"object"},"payment_type":{"description":"An available supported payment-type pair: KnQ0KlNE6kf5mobyV0pN / Credit Card, ALkMK9pqgzfvgrqjlMVL / PayPal, 1rdzjX2rrkcNjPXMEvOm / Offline Payment, or vEZoAZrZL4S6WG4Ryzo1 / Check. Omitted when unavailable or invalid.","properties":{"id":{"oneOf":[{"title":"KnQ0KlNE6kf5mobyV0pN","type":"string","description":"The credit card payment type ID.","examples":["KnQ0KlNE6kf5mobyV0pN"],"enum":["KnQ0KlNE6kf5mobyV0pN"]},{"title":"ALkMK9pqgzfvgrqjlMVL","type":"string","description":"The PayPal payment type ID.","enum":["ALkMK9pqgzfvgrqjlMVL"],"examples":["ALkMK9pqgzfvgrqjlMVL"]},{"title":"1rdzjX2rrkcNjPXMEvOm","type":"string","description":"The offline payment type ID.","enum":["1rdzjX2rrkcNjPXMEvOm"],"examples":["1rdzjX2rrkcNjPXMEvOm"]},{"title":"vEZoAZrZL4S6WG4Ryzo1","type":"string","description":"The check payment type ID.","enum":["vEZoAZrZL4S6WG4Ryzo1"],"examples":["vEZoAZrZL4S6WG4Ryzo1"]}],"description":"The id associated with this resource."},"name":{"oneOf":[{"title":"Credit Card","type":"string","description":"The credit card payment type name.","examples":["Credit Card"],"enum":["Credit Card"]},{"title":"PayPal","type":"string","description":"The PayPal payment type name.","enum":["PayPal"],"examples":["PayPal"]},{"title":"Offline Payment","type":"string","description":"The offline payment type name.","enum":["Offline Payment"],"examples":["Offline Payment"]},{"title":"Check","type":"string","description":"The check payment type name.","enum":["Check"],"examples":["Check"]}],"description":"The name associated with this resource."}},"title":"Payment Type Object","type":"object","additionalProperties":false},"products_detailed":{"description":"Up to 50 available summaries from the selected products. May be empty or incomplete.","items":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["USB HDD"]},"quantity":{"description":"Quantity for this product entry. Historical fractional and negative values may be returned, with up to two decimal places. Omitted when unavailable.","type":"number","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[249.99]},"total_amount":{"description":"The total product amount, i.e. price * quantity.","type":"number","format":"float","examples":[249.99]},"discount_amount":{"description":"The total amount discounted for the specific product purchased.","type":"number","format":"float","examples":[9.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[false]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"Your own reference for this resource.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The product SKU.","examples":["usb_hdd"]},"uuid":{"type":"string","description":"The UUID generated for the specific product within the sale. Useful for linking to related product discounts within the sale.","examples":["94cf3ea0-2ff1-415b-ae6c-c8b3f9e38348"]},"url":{"type":"string","description":"The product URL at a third party shop.","examples":["mystore.com/usb-hdd"]},"images":{"type":"array","description":"Up to 50 available images for this selected product; not necessarily every image.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image file name, combine with file_ext.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The image file extenstion, combine with file_name.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image file mimetype.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The root URL where the image is hosted. Combine with file_name and file_ext for a complete URL.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The full URL for embedding or downloading the image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]}}},"maxItems":50}},"type":"object"},"type":"array","maxItems":50},"third_party_shop":{"description":"The originating user shop, if applicable.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"tracking_visitor":{"description":"The tracking visitor related to the sale.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent tracking visitor ID.","type":"string","minLength":20,"maxLength":20,"examples":["o4G2JzbyzyCBOwnJ8gLd"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"A 20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"A 20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"A 20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"A 20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"A 20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount_discounted":{"description":"The amount discounted from this sale.","type":"number","examples":[0]},"status":{"description":"The sale's display status, which may contain historical text and differs from the accepted status_filter values.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"num_products":{"description":"Number of product records in the selected subset of up to 50, before unavailable summaries are omitted. May exceed products_detailed.length. This is not a complete product count or a sum of purchased quantities.","minimum":0,"type":"integer","examples":[0]},"pending_payment":{"description":"Whether payment for this sale is pending.","type":"boolean"},"shipping_amount":{"description":"The shipping amount applied to this sale.","type":"number","examples":[0]},"tax_amount":{"description":"The tax amount applied to this sale.","type":"number","examples":[0]}},"description":"Available sale details. Monetary amounts use iso_currency. Amounts describing payments are returned as zero for pending-payment, cancelled or PayPal-pending sales; original/current order totals, shipping and tax amounts retain their separate meanings."},"type":"array","maxItems":25,"description":"Up to limit sales, ordered by creation time from newest to oldest. May be empty or shorter than limit when some selected sales are unavailable. Nested arrays contain bounded selections, not necessarily complete histories."},"total_count":{"description":"Total number of matching sales for the filters, including selected sales unavailable in results. With customer_id, this total is not restricted by the supplied date range.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"total_count divided by limit, rounded up; zero when total_count is zero. May exceed 20 even though only the first 20 pages are accessible. At limit 25, this covers at most 500 selected sales.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Sale","description":"Create a new sale and attempt payment. After a decline, retain the returned sale ID, use UpdatePendingSale for corrections, then ProcessPendingSale to attempt payment on the same sale. Repeating CreateSale creates a separate purchase.","operationId":"CreateSale","x-api-permission-description":"Allows the creation of sales.","x-api-permission":"sale:create","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateSale.md","tags":["Sales"],"requestBody":{"content":{"application/json":{"schema":{"title":"Sale Request Object","description":"","properties":{"campaign":{"type":"string","minLength":1,"description":"Existing campaign name or 20 character RevCent ID of the campaign. Required when creating the sale. Must contain at least one non-whitespace character.","examples":["Example Campaign"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"ip_address":{"description":"The customer IP address.","type":"string","minLength":1,"examples":["192.0.2.10"]},"payment_type":{"type":"string","enum":["credit_card","paypal","offline_payment","check_direct"],"description":"Payment method for this sale. Apple Pay and Google Pay use credit_card.","examples":["credit_card"]},"payment_profile":{"type":"string","description":"Payment-profile routing reference. Prefer payment_profile unless a specific gateway is intended. An explicit gateway_id takes precedence for cards. Supply payment_profile or gateway_id for credit-card processing. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"credit_card":{"description":"Supply raw card details or a fresh Apple Pay/Google Pay source. Fresh input uses the common native_payload contract or exactly one gateway SDK/tokenization alternative; the CreateSale wallet choices below contain their detailed fields and requirements. To select a saved method, omit credit_card and use top-level payment_method_id instead. Full card details and a nonblank card_code can correct an eligible matching card. See card_code for CVV rules and bill_to for billing replacement. Fresh CVV is used only for that matching card on this payment attempt.","type":"object","oneOf":[{"additionalProperties":false,"description":"Raw card input. Mutually exclusive with fresh wallet data or top-level payment_method_id.","properties":{"card_number":{"description":"The full credit card number.","type":"string","writeOnly":true,"examples":["4111111111111111"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","minimum":1,"maximum":12,"examples":[1]},"exp_year":{"type":"integer","anyOf":[{"minimum":0,"maximum":99},{"minimum":1000,"maximum":9999}],"description":"Two-digit or four-digit expiration year.","examples":[0]},"card_code":{"description":"Optional card security code. Submit with full card_number, exp_month and exp_year to correct an eligible matching card without creating a duplicate payment method. Omitted, empty or whitespace-only card_code preserves the saved code. Draft creation and updates save it without charging. A confirmed correction remains saved after a payment decline; failure to confirm it prevents payment. For a fresh CVV on a later attempt, resubmit the full card and code during ProcessPendingSale; payment_method_id alone is not fresh CVV input. Saving a correction does not extend saved-code eligibility. The fresh code applies only to the matching card and does not change billing unless bill_to is supplied.","type":"string","writeOnly":true,"examples":["123"]},"three_ds":{"type":"object","properties":{"acs_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"algorithm":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"authentication_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"cavv":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_server_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"eci":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","const":true,"description":"Set enabled to true whenever you supply this 3DS object so its authentication values are included with the payment.","examples":[true]},"enrollment_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"three_ds_server_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","examples":["EC_v1"]},"xid":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"additionalProperties":false,"description":"Optional 3DS authentication data for newly supplied raw card details. Do not supply it with fresh wallet input or a saved payment-method selection."}},"type":"object","required":["card_number","exp_month","exp_year"]},{"type":"object","additionalProperties":false,"properties":{"apple_pay":{"type":"object"},"google_pay":{"type":"object"}},"oneOf":[{"required":["apple_pay"]},{"required":["google_pay"]}]}]},"paypal_transaction_id":{"type":"string","description":"Required if payment_type is paypal. The ID issued by PayPal for the transaction. The paypal_account_id property is also required if payment_type is paypal and providing a paypal_transaction_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"paypal_account_id":{"type":"string","description":"Required if payment_type is paypal. The RevCent ID for the PayPal account to use for the sale. The PayPal account must have been already added in RevCent. Retrieve the PayPal account ID by using the GetPayPalAccounts operation and finding the ID for the PayPal account you wish to use. The paypal_transaction_id property is also required if payment_type is paypal and providing a paypal_account_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"description":"Customer details. For an existing customer, omitted fields preserve saved values; empty or whitespace-only optional address, company and phone fields clear them. Supplied names cannot be blank. See email for the customer email update rules.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Valid customer email address. Omitted or blank input preserves an existing email. The same email is accepted ignoring case and surrounding whitespace; a different nonblank email is rejected before updates. Use EditCustomer to change an existing email. A customer without a saved email may receive one. Without a selected customer, provide a nonblank valid email in customer, bill_to or ship_to.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"bill_to":{"description":"Complete replacement billing address for the selected card. Supply first_name and last_name; omitted optional fields become empty. Omission preserves saved card billing. This is not a separately saved sale address; a cardless draft has no card on which to save it. A confirmed correction is used on subsequent payment attempts on this same unpaid sale when that card is selected, even if bill_to is omitted. It remains saved after a decline and does not change another card or a provider-held billing profile. This does not update a saved wallet.A correction supplied here is saved before the payment attempt; failure to confirm it prevents payment.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid billing contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"ship_to":{"description":"Complete replacement shipping address. Supply first_name and last_name; omitted optional fields become empty. If omitted, shipping uses supplied customer details, then bill_to, then the selected customer's saved details.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid shipping contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"product":{"description":"The products to include in the sale request.","items":{"description":"An individual product","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"description":"Exact product name, internal_id, RevCent product ID, SKU or additional_id.value. The product must be enabled and belong to your account. If a third-party shop is selected, or your API key has a shop association, matching products from that shop take priority, followed by other matching products in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The quantity being purchased. Default is 1.","type":"integer","minimum":1,"examples":[1]},"price":{"description":"The price you wish to charge, if different from the product default price in RevCent.","type":"number","format":"float","minimum":0},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual product when creating a sale. This metadata will be passed to the eventual product sale for the product, which is extremely useful for business metrics.<br><br>For example, if an individual product within a sale is an upsell, you can include metadata with name: 'is_upsell' and value: 'true' for that product. This will allow you to easily run product level reports on all upsells by filtering for the metadata name of 'upsell' and value of 'true'."}},"type":"object","required":["id"]},"type":"array","minItems":1},"shipping":{"description":"Shipping to include in the sale request. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the provider and method IDs.","items":{"description":"An individual shipping entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific shipping entry. A shipping amount can be 0.","type":"number","format":"float","minimum":0},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"An optional name for the shipping entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the shipping entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual shipping entry when creating a sale. This metadata will be passed to the eventual shipping item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"tax":{"description":"Tax to charge in the sale request. Can create multiple tax entries to itemize separate taxes.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific tax entry.","type":"number","format":"float","minimum":0},"name":{"description":"An optional name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the tax entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual tax entry when creating a sale. This metadata will be passed to the eventual tax item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"coupon":{"description":"Include one or more coupon codes which will be used to automatically apply discounts to a sale.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"coupon_code":{"description":"A coupon code which exists in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["coupon_code"]},"type":"array"},"discount":{"description":"Include one or more discount entries which will be used to automatically apply discounts to a sale. Can be a fixed amount or a percentage of the sales total.","items":{"description":"An individual discount entry.","additionalProperties":false,"properties":{"discount_value":{"description":"The coupon discount value relative to the discount_type.","type":"number","format":"float","minimum":0},"discount_type":{"description":"The coupon discount type, either percent or amount. RevCent will calculate the discount if percent.","type":"string","enum":["percent","amount"],"examples":["percent"]},"name":{"description":"An optional name for the discount entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the discount entry.","type":"string","examples":["Example description"]},"apply_to_product":{"description":"Whether to apply the discount to products purchased. Default is true. Set to false if discount should only apply to shipping.","type":"boolean"},"apply_to_shipping":{"description":"Whether to apply the discount to shipping. Default is true. Set to false if discount should only apply to products purchased.","type":"boolean"}},"type":"object","required":["discount_value","discount_type"]},"type":"array"},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of an existing customer in your account and the API key’s live or test mode. Use customer_id to select the customer; internal_customer_id is for reference only. For an existing customer, omit payment_method_id and credit_card to use automatic payment selection or supply payment_method_id to select a specific saved card or wallet.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_sale_id":{"type":"string","description":"Your sale reference. Supplying this value does not guarantee uniqueness or prevent duplicate requests.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_customer_id":{"type":"string","description":"Merchant reference data only; never used to select or automatically match a customer.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"minItems":1,"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["checkout_page"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["v2"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a sale, which will be passed down to all items created as a result of the sale, i.e. the customer, product sales, shipping, tax. This is extremely useful for adding information you wish to view or use for reporting.<br><br><em>Visitor Tracking</em>: If the sale took place on a website, and you have tracking domain DNS set up in RevCent for the website, you must include the following metadata from the visitor/session cookie for the sale:<br>1. {'name': 'revcent_track_id', 'value': '[the value of visitor/session cookie.revcent_track_id]'}<br>2. {'name': 'revcent_entry_id', 'value': '[the value of visitor cookie.revcent_entry_id]'}<br><br><em>Offline Payments</em>: For offline payment sales involving a third party payment processor you must include three metadata entries to ensure proper association of the sale within RevCent to the third party:<br>1. {'name': 'offline_payment_third_party', 'value': 'sezzle | afterpay | klarna | affirm | amazon_pay'}<br>2. {'name': 'offline_payment_third_party_transaction_id', 'value': '[the transaction ID from the third party]'}<br>3. {'name': 'offline_payment_third_party_integration_id', 'value': '[the RevCent ID of the third party integration within your account for the third party processor]'}"},"gateway_id":{"type":"string","description":"20 character RevCent ID of the card payment gateway. An explicit gateway selection is exclusive. For credit-card processing, use gateway_id only to select a specific gateway; otherwise prefer payment_profile. Supply payment_profile or gateway_id for credit-card processing. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable. Fresh wallet input requires the matching gateway_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"check_direct":{"type":"object","properties":{"check_number":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"mail_to_address":{"type":"object","properties":{"address_line_1":{"type":"string","examples":["123 Example Street"]},"address_line_2":{"type":"string","examples":["Suite 100"]},"city":{"type":"string","examples":["Boston"]},"company":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"first_name":{"type":"string","examples":["Alex"]},"last_name":{"type":"string","examples":["River"]},"state":{"type":"string","examples":["MA"]},"zip":{"type":"string","examples":["02108"]}},"additionalProperties":false},"pay_to_address":{"type":"object","properties":{"address_line_1":{"type":"string","examples":["123 Example Street"]},"address_line_2":{"type":"string","examples":["Suite 100"]},"city":{"type":"string","examples":["Boston"]},"company":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"first_name":{"type":"string","examples":["Alex"]},"last_name":{"type":"string","examples":["River"]},"state":{"type":"string","examples":["MA"]},"zip":{"type":"string","examples":["02108"]}},"additionalProperties":false}},"additionalProperties":false},"payment_method_id":{"description":"Optional 20 character RevCent ID of a saved customer payment method. Provide it only to select a specific method instead of the existing eligible selection. The method must belong to the selected customer in the same account and live/test mode. Legacy public saved card IDs are also accepted. Do not combine with credit_card or another payment type. Invalid explicit selections fail without substitution. customer_id is required when this field is supplied. Saved wallets use their originating gateway.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the payment outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate update or new payment attempt, including an intentional retry after a failed or declined payment. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent purchase identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]},"third_party_shop":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an available shop owned by your account. An API key without a shop association may select this shop. A shop-associated API key may select only its own shop. Omit to use the API key’s shop association, if any. Existing pending sales retain their stored shop.","example":"KnBKryj7jOFPLW1pqkVM"}},"type":"object","additionalProperties":false,"required":["campaign","product","payment_type"],"allOf":[{"anyOf":[{"required":["customer_id"]},{"required":["customer"],"properties":{"customer":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}},{"required":["bill_to"],"properties":{"bill_to":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}},{"required":["ship_to"],"properties":{"ship_to":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}}],"description":"Provide customer_id or a valid nonblank email in customer, bill_to, or ship_to."},{"if":{"required":["credit_card"],"properties":{"credit_card":{"anyOf":[{"required":["apple_pay"]},{"required":["google_pay"]}]}}},"then":{"required":["gateway_id"],"properties":{"gateway_id":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_type":{"const":"credit_card","examples":["credit_card"]}}}},{"if":{"required":["payment_type"],"properties":{"payment_type":{"const":"paypal"}}},"then":{"required":["paypal_account_id","paypal_transaction_id"]}},{"if":{"required":["credit_card"],"properties":{"credit_card":{"anyOf":[{"required":["apple_pay"]},{"required":["google_pay"]}]}}},"then":{"title":"Choose native wallet data or one gateway SDK/tokenization alternative","description":"For original Apple or Google wallet data, choose the common native schema and add only the selected gateway’s required supplements directly inside native_payload. For SDK/tokenization results, choose the external schema matching gateway_id. These sources are mutually exclusive. RevCent handles submission to the gateway. Combine these payment fields with all other required CreateSale fields.","oneOf":[{"title":"Native Apple Pay: original wallet data and gateway supplements","description":"Native Apple Pay input sent to RevCent. Supply original wallet fields and gateway supplements directly inside native_payload. Native input cannot be combined with a gateway-named SDK/tokenization alternative. Combine these payment fields with the other required CreateSale fields.","type":"object","additionalProperties":true,"required":["payment_type","gateway_id","credit_card"],"properties":{"payment_type":{"type":"string","const":"credit_card","examples":["credit_card"]},"gateway_id":{"type":"string","minLength":20,"maxLength":20,"description":"Public RevCent ID of the account-owned gateway for which the new wallet data was generated. Required at the sale root. The selected gateway and API key environment must match the wallet data.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"credit_card":{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["native_payload"],"properties":{"native_payload":{"type":"object","additionalProperties":true,"minProperties":1,"properties":{"key_id":{"type":"string","description":"FluidPay Apple Pay credential key ID associated with this encrypted Apple token. Required for every native Apple Pay request whose root gateway_id selects FluidPay; do not include it for Google Pay or another gateway. Exactly 20 lowercase base-32 characters (0–9 and a–v). Supply the complete Apple token with paymentData, paymentMethod and transactionIdentifier beside this field. Provide these fields directly in native_payload; no additional gateway request wrapper is needed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"return_url":{"type":"string","maxLength":2048,"format":"uri","description":"Paysafe payment-handle return URL for the merchant application. Required for native Apple Pay and Google Pay when the root gateway_id selects Paysafe. Use an absolute HTTPS URL without a username or password, at most 2,048 characters. For Google Pay also supply public_api_key in this same native_payload object; Apple Pay must omit public_api_key. RevCent uses return_url when creating the Paysafe payment handle. Challenge continuation remains unsupported. Omit this field for all other gateways.","examples":["https://merchant.example/payment-return"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED means the agreed recurring payment amount is fixed; VARIABLE means the agreed amount may vary. Supply the terms agreed with the payer.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid agreement expiry date in YYYY-MM-DD form, not in the past when the API processes setup. The API verifies that the date is valid and has not expired.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments in whole days, from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ Worldline stored-credential agreement terms. Required in native_payload for ANZ Apple Pay or Google Pay subscription/trial setup as type RECURRING, or unscheduled setup as type UNSCHEDULED. Product-derived subscription/trial intent also requires these terms when future_usage is omitted. RECURRING requires amountVariability, expiryDate and minimumDaysBetweenPayments; UNSCHEDULED accepts only type. Recurring and unscheduled intent cannot be combined. Omit for one-time payments, customer-present-only setup and other gateways. Do not send an agreement ID: RevCent creates the gateway agreement identity. For the ANZ SDK alternative, agreement belongs inside anz_worldline beside its token/session instead."},"pan_type":{"type":"string","const":"mpan","description":"CardPointe Apple Pay merchant-token assertion. Supply the literal mpan when a native Apple Pay payment through CardPointe sets up subscription/trial reuse, including intent inferred from products when future_usage is omitted. This asserts that the Apple token was provisioned as a merchant token; a successful charge does not establish that fact. Omit for one-time native payments. dpan is not accepted here, and this field is prohibited for native Google Pay or another gateway. For the CardPointe SDK alternative, the assertion belongs inside cardpointe beside token instead.","examples":["mpan"]},"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."},"paymentData":{"description":"Original object-valued Apple paymentData inside a complete Apple token, containing version, data, signature and header. FluidPay and Braintree require the complete-token form. Keep paymentMethod and transactionIdentifier at this native_payload level beside paymentData; put gateway supplements here as well, not inside paymentData. Gateways that accept bare paymentData instead receive version, data, signature and header directly inside native_payload."},"paymentMethod":{"description":"Original Apple paymentMethod object in the complete token. Required by FluidPay and Braintree; Braintree requires its original network field to identify the card network. Preserve displayName, type and other Apple-supplied fields when present. This is unrelated to a saved RevCent payment_method_id."},"transactionIdentifier":{"description":"Original Apple transaction identifier from the complete token. Required for native FluidPay Apple Pay; preserve it whenever Apple supplies it for other gateways. This is not a RevCent sale ID or a merchant order reference.","examples":["synthetic-apple-transaction"]}},"description":"Input sent to RevCent: original Apple encrypted paymentData object or complete Apple payment token. Add only fields required by the selected gateway for this native payment or its required future use, directly in this object. Optional gateway context is not accepted in native_payload; use the gateway SDK/tokenization alternative if that context is needed. Do not add another payload wrapper. RevCent uses these supplemental fields to process the payment with the selected gateway. Original wallet fields and encrypted strings are retained. Maximum serialized size: 65,536 UTF-8 bytes. Requirements depending on gateway selection or product configuration are checked when processing the sale. Use a gateway-specific SDK alternative instead when supplying SDK/tokenization results. Only one gateway’s supplemental field family may be present, and it must match gateway_id. Place supplemental fields only at this object’s root; leave identically named fields within the original wallet data unchanged. channel, origin, browserInfo, riskData and processing_channel_id are prohibited here and are available only in the applicable SDK/tokenization alternative. FluidPay and Braintree require the complete-token form rather than bare paymentData. FluidPay additionally requires paymentMethod and transactionIdentifier; Braintree requires paymentMethod.network. Other gateways retain their own original-token validation. Elavon Converge uses this native alternative and has no SDK schema.","allOf":[{"if":{"required":["paymentData"],"properties":{"paymentData":{"type":"object"}}},"then":{"properties":{"paymentData":{"type":"object","required":["version","data","signature","header"],"properties":{"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."}}}}},"else":{"type":"object","required":["version","data","signature","header"],"properties":{"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."}}}},{"if":{"anyOf":[{"required":["key_id"]}]},"then":{"not":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["agreement"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["pan_type"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]}]}}},{"if":{"required":["return_url"]},"then":{"properties":{"return_url":{"examples":["https://merchant.example/payment-return"]}}}}],"dependentRequired":{"public_api_key":["return_url"]},"propertyNames":{"not":{"enum":["channel","origin","browserInfo","riskData","processing_channel_id","public_api_key"]}},"title":"Original Apple Pay payload with native gateway requirements"},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Subscription/trial products require reusable setup and the applicable gateway supplemental fields even when this field is omitted. Fresh zero-total setup also requires a reusable method. Gateway support, merchant configuration and consent still apply; this field does not guarantee reuse or approval."}},"title":"Native Apple Pay","description":"Use original Apple Pay data in native_payload and optional future_usage beside it. Do not also supply a gateway-named SDK/tokenization object. The root gateway_id selects the destination gateway."}}}}},{"title":"Native Google Pay: original wallet data and gateway supplements","description":"Native Google Pay input sent to RevCent. Supply original wallet fields and gateway supplements directly inside native_payload. Native input cannot be combined with a gateway-named SDK/tokenization alternative. Combine these payment fields with the other required CreateSale fields.","type":"object","additionalProperties":true,"required":["payment_type","gateway_id","credit_card"],"properties":{"payment_type":{"type":"string","const":"credit_card","examples":["credit_card"]},"gateway_id":{"type":"string","minLength":20,"maxLength":20,"description":"Public RevCent ID of the account-owned gateway for which the new wallet data was generated. Required at the sale root. The selected gateway and API key environment must match the wallet data.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"credit_card":{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["native_payload"],"properties":{"native_payload":{"type":"object","additionalProperties":true,"minProperties":1,"properties":{"return_url":{"type":"string","maxLength":2048,"format":"uri","description":"Paysafe payment-handle return URL for the merchant application. Required for native Apple Pay and Google Pay when the root gateway_id selects Paysafe. Use an absolute HTTPS URL without a username or password, at most 2,048 characters. For Google Pay also supply public_api_key in this same native_payload object; Apple Pay must omit public_api_key. RevCent uses return_url when creating the Paysafe payment handle. Challenge continuation remains unsupported. Omit this field for all other gateways.","examples":["https://merchant.example/payment-return"]},"public_api_key":{"type":"string","minLength":4,"maxLength":8192,"description":"Paysafe public single-use API credential used for the Google Pay token exchange. Required together with return_url only for native Google Pay when gateway_id selects Paysafe. Supply 4–8,192 characters directly in native_payload. This is the public token-exchange credential, not the private API key configured on the RevCent gateway. Never include it for Apple Pay or another gateway; financial gateway requests use the separately configured gateway credentials.","examples":["synthetic-public-key"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED means the agreed recurring payment amount is fixed; VARIABLE means the agreed amount may vary. Supply the terms agreed with the payer.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid agreement expiry date in YYYY-MM-DD form, not in the past when the API processes setup. The API verifies that the date is valid and has not expired.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments in whole days, from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ Worldline stored-credential agreement terms. Required in native_payload for ANZ Apple Pay or Google Pay subscription/trial setup as type RECURRING, or unscheduled setup as type UNSCHEDULED. Product-derived subscription/trial intent also requires these terms when future_usage is omitted. RECURRING requires amountVariability, expiryDate and minimumDaysBetweenPayments; UNSCHEDULED accepts only type. Recurring and unscheduled intent cannot be combined. Omit for one-time payments, customer-present-only setup and other gateways. Do not send an agreement ID: RevCent creates the gateway agreement identity. For the ANZ SDK alternative, agreement belongs inside anz_worldline beside its token/session instead."},"paymentMethodData":{"type":"object","required":["tokenizationData"],"properties":{"tokenizationData":{"type":"object","required":["type","token"],"properties":{"type":{"const":"PAYMENT_GATEWAY","description":"Required literal PAYMENT_GATEWAY. Google DIRECT tokenization is not supported by this native input contract.","examples":["PAYMENT_GATEWAY"]},"token":{"type":"string","minLength":1,"description":"Original nonblank Google gateway token string. Required. Preserve the exact signed/encrypted string, including escaping; do not parse it into an object, modify signedMessage, decrypt it or add a Base64 wrapper. RevCent submits the token to the selected gateway; no additional preparation is required from the caller.","examples":["synthetic-wallet-token"]}},"additionalProperties":true,"description":"Original Google gateway tokenization result. Required with type PAYMENT_GATEWAY and its original nonblank string token. Generate it for the selected destination gateway and environment; tokens are not interchangeable across gateways."},"type":{"description":"Original Google payment method type. Paysafe requires CARD for native Google Pay. Preserve the provider value; this is separate from the sale-root payment_type, which remains credit_card."}},"additionalProperties":true,"description":"Original Google payment method data. Required for every native Google Pay request. Preserve its tokenizationData and any supplied type, description, info or other original fields."},"apiVersion":{"description":"Original Google Pay API major version. Preserve the value from PaymentData. Paysafe requires 2 for native Google Pay; other gateways retain their own validation.","examples":[2]},"apiVersionMinor":{"description":"Original Google Pay API minor version. Preserve the value from PaymentData. Paysafe requires 0 for native Google Pay; do not replace this with a RevCent API version.","examples":[0]}},"description":"Input sent to RevCent: original Google PaymentData containing paymentMethodData.tokenizationData with type PAYMENT_GATEWAY and its original string token. Add only fields required by the selected gateway for this native payment or its required future use, directly in this object. Optional gateway context is not accepted in native_payload; use the gateway SDK/tokenization alternative if that context is needed. Do not add another payload wrapper. RevCent uses these supplemental fields to process the payment with the selected gateway. Original wallet fields and encrypted strings are retained. Maximum serialized size: 65,536 UTF-8 bytes. Requirements depending on gateway selection or product configuration are checked when processing the sale. Use a gateway-specific SDK alternative instead when supplying SDK/tokenization results. Only one gateway’s supplemental field family may be present, and it must match gateway_id. Place supplemental fields only at this object’s root; leave identically named fields within the original wallet data unchanged. channel, origin, browserInfo, riskData and processing_channel_id are prohibited here and are available only in the applicable SDK/tokenization alternative. Google DIRECT tokenization and a bare signed token are not accepted as native_payload. An extracted FluidPay Google token belongs in the fluid_pay SDK/tokenization alternative. Gateway-specific validation still applies to the original PaymentData; for example, Paysafe requires apiVersion 2, apiVersionMinor 0 and paymentMethodData.type CARD. Elavon Converge uses this native alternative and has no SDK schema.","allOf":[{"required":["paymentMethodData"]},{"if":{"anyOf":[{"required":["key_id"]}]},"then":{"not":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["agreement"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["pan_type"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]}]}}},{"if":{"required":["return_url"]},"then":{"properties":{"return_url":{"examples":["https://merchant.example/payment-return"]}}}}],"dependentRequired":{"public_api_key":["return_url"],"return_url":["public_api_key"]},"propertyNames":{"not":{"enum":["channel","origin","browserInfo","riskData","processing_channel_id","key_id","pan_type"]}},"title":"Original Google Pay payload with native gateway requirements"},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Subscription/trial products require reusable setup and the applicable gateway supplemental fields even when this field is omitted. Fresh zero-total setup also requires a reusable method. Gateway support, merchant configuration and consent still apply; this field does not guarantee reuse or approval."}},"title":"Native Google Pay","description":"Use original Google Pay data in native_payload and optional future_usage beside it. Do not also supply a gateway-named SDK/tokenization object. The root gateway_id selects the destination gateway."}}}}},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/adyen.json","title":"Adyen: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Adyen. Supply the paymentMethod from Component/Drop-in Advanced state.data, with optional SDK context. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/anz-worldline.json","title":"ANZ Worldline: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects ANZ Worldline. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/authorize-net.json","title":"Authorize.Net: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Authorize.Net. Supply provider-prepared opaqueData with its exact dataDescriptor and dataValue. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/braintree.json","title":"Braintree: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Braintree. Supply a wallet nonce or supported Braintree paymentMethodId, with optional riskData. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/cardpointe.json","title":"CardPointe: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects CardPointe. Supply a fresh CardSecure token, with an Apple MPAN assertion when required for reusable setup. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/checkout-com.json","title":"Checkout.com: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Checkout.com. Supply a fresh tok_ wallet token, with optional processing_channel_id. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/cybersource.json","title":"CyberSource: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects CyberSource. Supply a Unified Checkout transientTokenJwt accompanied by its signed capture_context. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/fluid-pay.json","title":"FluidPay: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects FluidPay. Supply a WalletJS temporary_token for Apple Pay or an extracted google_pay_token for Google Pay. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/nmi.json","title":"NMI: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects NMI. Supply the payment_token produced by Collect.js or Payment Component. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/paysafe.json","title":"Paysafe: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Paysafe. Supply a Payments API payment_handle_token and the exact merchant_ref_num used to create it. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."},{"$ref":"https://cdn.revcent.com/schemas/api-v2/wallets/stripe.json","title":"Stripe: Apple Pay and Google Pay SDK/tokenization","description":"Payment fields sent to RevCent when gateway_id selects Stripe. Supply a wallet token or wallet PaymentMethod identifier for the initial payment or setup. Choose exactly one Apple Pay or Google Pay variant. The gateway-named object is an alternative to native_payload and cannot accompany it. Native wallet data uses the common native Apple Pay or Google Pay schema instead. Combine these fields with the ordinary required CreateSale fields. RevCent submits the payment to the selected gateway."}]}},{"if":{"required":["payment_method_id"]},"then":{"not":{"anyOf":[{"required":["credit_card"]},{"required":["check_direct"]},{"required":["paypal_account_id"]},{"required":["paypal_transaction_id"]}]},"properties":{"payment_type":{"const":"credit_card","examples":["credit_card"]}},"required":["customer_id"]}},{"required":["ip_address"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"title":"Sale Success Response","description":"The successful sale outcome and related resources, with payment details when a payment was processed.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","examples":[0]},"amount":{"description":"The sale amount.","type":"number","format":"float"},"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"type":"object","additionalProperties":false,"description":"The customer response object contains the details of the customer related to the item.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked."},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"The customer first name.","examples":["Alex"]},"internal_id":{"type":"string","description":"Your reference for the customer, such as the customer ID in your own system.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_name":{"type":"string","description":"The customer last name.","examples":["River"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"description":"The 20 character RevCent ID of the customer, or an empty string when the returned customer details do not include an ID.","examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"type":"array","maxItems":10,"description":"Available customer metadata, with up to ten entries. Existing names and values are returned as recorded.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["Example"]},"value":{"type":"string","description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"customer_card_id":{"description":"The 20 character RevCent ID of the selected card, also returned as card_id, or an empty string when no card ID is available. This response field is not a request parameter.","type":"string","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"discount_created":{"type":"array","description":"An array of any discounts created.","items":{"type":"object","additionalProperties":false,"description":"A discount item.","properties":{"id":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"name":{"type":"string","description":"The discount name.","examples":["Example"]},"description":{"type":"string","description":"The discount description.","examples":["Example description"]},"discount_amount":{"type":"number","format":"float","description":"The discount dollar amount."},"discount_percent":{"type":"number","format":"float","description":"The calculated discount percentage of the sale total."}}}},"fraud_detection_response":{"description":"The fraud-check outcome associated with the sale, including an alert that allowed payment. May also indicate that no check was performed.","type":"object","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"gateway":{"type":"string","description":"The gateway which processed the successful sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"has_fraud_alert":{"type":"boolean","description":"Whether the sale has a fraud alert"},"internal_customer_id":{"description":"Your customer reference, such as a customer ID from another service. For reference only; it cannot be used to select a customer.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_sale_id":{"description":"Your sale reference, such as an order ID from another service. For reference only.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ip_address":{"type":"string","description":"The customer IP address.","examples":["192.0.2.10"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"payment_type":{"type":"string","description":"The sale payment type.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_sale_created":{"type":"array","description":"Product sales created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"price":{"type":"number","description":"The product price specific to the product sale.","examples":[0]},"quantity":{"type":"integer","description":"The product quantity specific to the product sale.","examples":[0]},"product":{"type":"object","additionalProperties":false,"description":"The product Schema","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the product sale.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this product sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the product sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"subscription":{"type":["object","null"],"additionalProperties":false,"description":"The ID of a subscription created specific to the product sale. Null when no related subscription was created.","properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}},"trial":{"type":["object","null"],"additionalProperties":false,"description":"The ID of a trial created specific to the product sale. Null when no related trial was created.","properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}}}}},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"salvage_transaction":{"description":"The salvage transaction for any remaining payment amount, or null when none was created.","type":["object","null"],"additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Indicates whether a salvage transaction was created."},"ship_to":{"title":"Ship To Object","type":["object","null"],"additionalProperties":false,"description":"The shipping destination, or null when no shipping destination is available.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The shipping email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}}},"shipping_created":{"type":"array","description":"An array of any shipping created.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"id":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"subscription_created":{"type":"array","description":"An array of any subscriptions created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"start_date_unix":{"description":"Unix timestamp of when the subscription starts.","type":"integer","format":"unix-time","examples":[1893499200]},"next_renewal_date_unix":{"description":"The next renewal date as a Unix timestamp in seconds, or null when no date is set.","type":["integer","null"],"format":"unix-time","examples":[1893499200]},"product_sale":{"type":"object","additionalProperties":false,"description":"The product sale related to the subscription.","properties":{"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}},"product":{"type":"object","additionalProperties":false,"description":"The product related to the subscription.","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the subscription.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"trial":{"type":["object","null"],"additionalProperties":false,"description":"The related trial, or null when this subscription has no trial.","properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}}}}},"tax_created":{"type":"array","description":"Any tax created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"id":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"name":{"description":"The name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"The description for the tax entry.","type":"string","examples":["Example description"]},"rate":{"type":"number","format":"float","description":"The calculated tax rate."},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]}}}},"third_party_shop":{"description":"The originating user shop, or null when no shop is associated.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["Example"]}},"type":["object","null"]},"transaction_id":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"trial_created":{"type":"array","description":"The trial_created Schema","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"num_days":{"type":"integer","description":"The total duration of the trial in days","examples":[0]},"end_date_unix":{"description":"Unix timestamp of when the trial is set to expire.","type":"integer","format":"unix-time","examples":[1893499200]},"product_sale":{"type":"object","additionalProperties":false,"description":"The product sale related to the trial.","properties":{"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}},"product":{"type":"object","additionalProperties":false,"description":"The product related to the trial.","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the trial.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this trial.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the trial.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"subscription":{"type":["object","null"],"additionalProperties":false,"description":"The related subscription, or null when this trial has no subscription.","properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}}}}},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"wallet_setup":{"type":"string","enum":["not_requested","ready","failed","unknown"],"description":"Wallet credential setup outcome when reported by the payment processor.","examples":["not_requested"]},"wallet_reusable":{"type":"boolean","description":"Whether a usable reusable wallet method was established for this result; future lifecycle/provider restrictions still apply."},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of the wallet payment method, when one was created. Use this ID for supported future payments.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"gateway_name":{"description":"The gateway name reported for the successful payment attempt.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_result_phrase":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_transaction_id":{"type":["string","null"],"description":"The gateway transaction reference, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"user_gateway":{"type":"object","description":"The gateway used for the attempt.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}}},"has_salvage_transaction":{"type":"boolean","description":"Whether a salvage transaction was created for the remaining payment amount, when reported by the payment profile."},"check_direct":{"type":"object","additionalProperties":false,"description":"The check payment created for this sale.","properties":{"amount":{"type":"number","description":"The payment amount in the sale currency.","examples":[0]},"id":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]}}},"offline_payment":{"type":"object","additionalProperties":false,"description":"The offline payment recorded for this sale.","properties":{"amount":{"type":"number","description":"The payment amount in the sale currency.","examples":[0]},"id":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]}}}}}}},"description":"Successful response."},"400":{"description":"Invalid request, operation validation failure or payment blocked by a fraud check.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"The selected gateway requires additional anti-fraud configuration.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0689"],"examples":["E0689"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"reasons":{"type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Account requirements that must be satisfied before using the selected gateway."}}},{"type":"object","description":"Payment was not processed because a fraud check blocked the sale.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"Fraud prevented payment.","enum":[5],"examples":[5]},"customer_id":{"type":["string","null"],"description":"The 20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"sale_id":{"type":["string","null"],"description":"The 20 character RevCent ID of the sale.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"message":{"type":"string","description":"The reason payment was not processed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The unsuccessful payment summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_response":{"type":"object","description":"The fraud-check result associated with this payment attempt.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"402":{"description":"Payment declined or unsuccessful, as indicated by the response code.","content":{"application/json":{"schema":{"type":"object","description":"An unsuccessful sale payment attempt. Gateway and transaction details are present only when available.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"The payment outcome: 2 for declined, 3 for an error.","enum":[2,3],"examples":[2]},"message":{"type":"string","description":"A human-readable explanation of the unsuccessful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The payment outcome summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","description":"The attempted payment amount, when a gateway attempt was made.","examples":[0]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"transaction_id":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"gateway_name":{"type":"string","description":"The gateway name for the last attempt.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"gateway_result_phrase":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_transaction_id":{"type":["string","null"],"description":"The gateway transaction reference, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"user_gateway":{"type":"object","description":"The gateway used for the attempt.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}}},"custom_error":{"type":"string","description":"The payment-profile message supplied for a declined payment, when configured.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"kill_profile":{"type":"boolean","description":"Whether the payment profile was stopped by a configured response rule."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"max_attempts_reached":{"type":"boolean","description":"Whether the configured maximum number of payment attempts was reached."},"fraud_detection_response":{"type":"object","description":"The fraud-check result associated with this payment attempt.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"wallet_setup":{"type":"string","enum":["not_requested","ready","failed","unknown"],"description":"Wallet credential setup outcome when reported by the payment processor.","examples":["not_requested"]},"wallet_reusable":{"type":"boolean","description":"Whether a usable reusable wallet method was established for this result; future lifecycle/provider restrictions still apply."},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of the wallet payment method, when one was created. Use this ID for supported future payments.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/{sale_id}":{"get":{"summary":"Get A Sale","description":"Retrieve a sale with its available customer, product and payment details. Related histories are bounded selections. Use the returned related-resource IDs with their corresponding Get operations for further details. No query parameters are accepted.","operationId":"GetSale","x-api-permission-description":"Allows the retrieval of sales.","x-api-permission":"sale:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSale.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"20 character RevCent ID of the sale to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Sale details and API-call information. Monetary values use major units of iso_currency, with up to two decimal places. For cancelled or pending-payment sales, including pending PayPal payments, payment amounts and amount_discounted are zero; order totals, shipping and tax retain their separate meanings.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval; it does not indicate payment success.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"amount":{"description":"Gross payments for the sale, matching amount_gross; distinct from the order total.","type":"number","format":"float","examples":[129.99]},"amount_original_total":{"description":"The original order total including products, shipping and tax before discounts.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current order total reflecting discounts and refunds; distinct from gross payments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Gross payments after recorded refunds.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net payments after recorded refunds and processor fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The recorded processor-fee amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The amount awaiting further payment, including outstanding trials and salvage payments.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"The outstanding salvage-payment amount.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID, returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"cancelled":{"type":"boolean","description":"Whether the sale has been cancelled.","examples":[false]},"customer":{"type":"object","description":"The customer response object contains the details of the customer related to the item.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Available country text, normally an ISO 3166-1 alpha-3 code; historical text is preserved.","examples":["USA"]},"email":{"type":"string","description":"Available email text, including historical values; omitted when empty or unavailable.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for this resource.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"has_fraud_alert":{"type":"boolean","description":"Whether the sale has a fraud alert.","examples":[false]},"has_paypal_dispute":{"type":"boolean","description":"Whether the sale has a PayPal dispute.","examples":[false]},"internal_id":{"description":"Your own reference for this resource.","type":"string","examples":["123456"]},"iso_currency":{"description":"The sale's currency designation, normally a three-letter ISO 4217 code. Available historical text is preserved.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"ip_address":{"type":"string","description":"The IP address associated with the sale.","examples":["192.168.1.1"]},"notes":{"description":"Up to 50 available notes from a bounded selection, not a complete note history.","items":{"additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"A 20 character RevCent note ID.","type":"string","minLength":20,"maxLength":20,"examples":["9r0NrKQ864FaOrmOYmQn"]},"text":{"type":"string","description":"Available nonempty note text, including historical text longer than 255 characters.","minLength":1,"examples":["Customer called and asked to about their order."]},"username":{"type":"string","description":"The username of the user who created the note.","examples":["JohnD"]},"first_name":{"type":"string","description":"The first name of the user who created the note.","examples":["John"]},"last_name":{"type":"string","description":"The last name of the user who created the note.","examples":["Doe"]},"employee_id":{"description":"A 20 character RevCent user ID.","type":"string","minLength":20,"maxLength":20,"examples":["mWwZ8KyrOLNOOdbbdUbQ"]},"customer_note_related_type":{"type":"string","description":"The item type that the note was created for.","examples":["sale"]},"customer_note_related_id":{"type":"string","description":"The item type ID that the note was created for.","minLength":20,"maxLength":20,"examples":["O0O0LON20nTaNQ6gg6Lm"]}},"type":"object"},"type":"array","maxItems":50},"ship_to":{"type":"object","additionalProperties":false,"description":"The ship to response object contains the details of the shipping destination related to the item.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Available country text, normally an ISO 3166-1 alpha-3 code; historical text is preserved.","examples":["USA"]},"email":{"type":"string","description":"Available email text, including historical values; omitted when empty or unavailable.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"payment_attempt_status":{"description":"Available payment-attempt flags and a bounded selection of card or wallet attempts; not a complete payment history.","additionalProperties":false,"properties":{"payment_attempted":{"type":"boolean","description":"Whether the sale has a payment attempt.","examples":[false]},"payment_success":{"type":"boolean","description":"Whether the sale was successfully paid.","examples":[false]},"payment_declined":{"type":"boolean","description":"Whether the sale has a payment attempt that was declined.","examples":[false]},"payment_fail":{"type":"boolean","description":"Whether the sale has a payment attempt that was unsuccessful","examples":[false]},"payment_held":{"type":"boolean","description":"Whether the sale has a payment attempt that was held.","examples":[false]},"payment_error":{"type":"boolean","description":"Whether the sale has a payment attempt that resulted in an error.","examples":[false]},"payment_attempts_num":{"type":"integer","description":"Number of attempts in the selected subset of up to 50, before unavailable summaries are omitted. May exceed payment_attempts.length and is not a complete historical count.","examples":[1]},"payment_attempts":{"description":"Up to 50 available card or wallet attempts from the selected history, in its existing order. May be incomplete.","items":{"description":"An available card or wallet payment-attempt summary.","additionalProperties":false,"properties":{"attempt_date":{"description":"The payment attempt date in ISO8601 format.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"attempt_date_unix":{"description":"The payment attempt date in unix timestamp format.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"transaction":{"description":"An individual payment attempt.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"amount":{"description":"The transaction amount.","type":"number","format":"float","examples":[129.99]},"gateway":{"description":"The transaction gateway.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"description":"The gateway name.","type":"string","examples":["Authorize.net"]}},"type":"object"},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"The normalized card network used by the wallet.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"The normalized funding source reported by the wallet.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"}},"type":"object"},"customer_card":{"type":["object","null"],"additionalProperties":false,"description":"Available saved-card summary for this attempt; null when unavailable, including wallet attempts without a related card summary.","properties":{"id":{"description":"A 20 character RevCent saved card ID.","type":"string","minLength":20,"maxLength":20,"examples":["ALAGkvj0O7u5rdmVggQ7"]},"type":{"type":"string","description":"Card type.","examples":["visa"]},"first_6":{"type":"string","description":"Card first 6, a.k.a. BIN.","examples":["424242"]},"last_4":{"type":"string","description":"Card last 4.","examples":["4242"]},"expiry_date":{"type":"string","description":"Card expiration date in MM/YY format.","examples":["12/29"]},"expiry_month":{"type":"string","description":"Card expiration month in MM format.","examples":["12"]},"expiry_year":{"type":"string","description":"Card expiration year in YYYY format.","examples":["2029"]},"is_default":{"type":"boolean","description":"Whether the card is set as the customers default payment method.","examples":[true]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}}},"type":"object"},"type":"array","maxItems":50}},"type":"object"},"payment_type":{"description":"An available supported payment-type pair: KnQ0KlNE6kf5mobyV0pN / Credit Card, ALkMK9pqgzfvgrqjlMVL / PayPal, 1rdzjX2rrkcNjPXMEvOm / Offline Payment, or vEZoAZrZL4S6WG4Ryzo1 / Check. Omitted when unavailable or invalid.","properties":{"id":{"oneOf":[{"title":"KnQ0KlNE6kf5mobyV0pN","type":"string","description":"The credit card payment type ID.","examples":["KnQ0KlNE6kf5mobyV0pN"],"enum":["KnQ0KlNE6kf5mobyV0pN"]},{"title":"ALkMK9pqgzfvgrqjlMVL","type":"string","description":"The PayPal payment type ID.","enum":["ALkMK9pqgzfvgrqjlMVL"],"examples":["ALkMK9pqgzfvgrqjlMVL"]},{"title":"1rdzjX2rrkcNjPXMEvOm","type":"string","description":"The offline payment type ID.","enum":["1rdzjX2rrkcNjPXMEvOm"],"examples":["1rdzjX2rrkcNjPXMEvOm"]},{"title":"vEZoAZrZL4S6WG4Ryzo1","type":"string","description":"The check payment type ID.","enum":["vEZoAZrZL4S6WG4Ryzo1"],"examples":["vEZoAZrZL4S6WG4Ryzo1"]}],"description":"The id associated with this resource."},"name":{"oneOf":[{"title":"Credit Card","type":"string","description":"The credit card payment type name.","examples":["Credit Card"],"enum":["Credit Card"]},{"title":"PayPal","type":"string","description":"The PayPal payment type name.","enum":["PayPal"],"examples":["PayPal"]},{"title":"Offline Payment","type":"string","description":"The offline payment type name.","enum":["Offline Payment"],"examples":["Offline Payment"]},{"title":"Check","type":"string","description":"The check payment type name.","enum":["Check"],"examples":["Check"]}],"description":"The name associated with this resource."}},"title":"Payment Type Object","type":"object","additionalProperties":false},"products_detailed":{"description":"Up to 50 available summaries from the selected products. May be empty or incomplete.","items":{"additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent product ID.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["USB HDD"]},"quantity":{"description":"Quantity for this product entry. Historical fractional and negative values may be returned, with up to two decimal places. Omitted when unavailable.","type":"number","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[249.99]},"total_amount":{"description":"The total product amount, i.e. price * quantity.","type":"number","format":"float","examples":[249.99]},"discount_amount":{"description":"The total amount discounted for the specific product purchased.","type":"number","format":"float","examples":[9.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[false]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"Your own reference for this resource.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The product SKU.","examples":["usb_hdd"]},"uuid":{"type":"string","description":"The UUID generated for the specific product within the sale. Useful for linking to related product discounts within the sale.","examples":["94cf3ea0-2ff1-415b-ae6c-c8b3f9e38348"]},"url":{"type":"string","description":"The product URL at a third party shop.","examples":["mystore.com/usb-hdd"]},"images":{"type":"array","description":"Up to 50 available images for this selected product; not necessarily every image.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image file name, combine with file_ext.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The image file extenstion, combine with file_name.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image file mimetype.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The root URL where the image is hosted. Combine with file_name and file_ext for a complete URL.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The full URL for embedding or downloading the image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]}}},"maxItems":50}},"type":"object"},"type":"array","maxItems":50},"third_party_shop":{"description":"The originating user shop, if applicable.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"tracking_visitor":{"description":"The tracking visitor related to the sale.","additionalProperties":false,"properties":{"id":{"description":"A 20 character RevCent tracking visitor ID.","type":"string","minLength":20,"maxLength":20,"examples":["o4G2JzbyzyCBOwnJ8gLd"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each product_sale_id using the GetProductSale operation.","maxItems":50},"shipping":{"items":{"description":"A 20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each tax_id using the GetTax operation.","maxItems":50},"discounts":{"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each discount_id using the GetDiscount operation.","maxItems":50},"trials":{"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each transaction_id using the GetTransaction operation.","maxItems":50},"ai_threads":{"items":{"description":"A 20 character RevCent AI Thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each ai_thread_id using the GetAIThread operation.","maxItems":50},"ai_assistants":{"items":{"description":"A 20 character RevCent AI Assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each paypal_transaction_id using the GetPayPalTransaction operation.","maxItems":50},"offline_payments":{"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each offline_payment_id using the GetOfflinePayment operation.","maxItems":50},"check_directs":{"items":{"description":"A 20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each check_direct_id using the GetCheckDirect operation.","maxItems":50},"salvage_transactions":{"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each salvage_transaction_id using the GetSalvageTransaction operation.","maxItems":50},"pending_refunds":{"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each pending_refund_id using the GetPendingRefund operation.","maxItems":50},"chargebacks":{"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each chargeback_id using the GetChargeback operation.","maxItems":50},"fraud_detections":{"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each fraud_detection_id using the GetFraudDetection operation.","maxItems":50},"api_calls":{"items":{"description":"A 20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related IDs, not a complete history. An empty array does not establish that no related resources exist. Retrieve the details of each api_call_id using the GetAPICall operation.","maxItems":50},"amount_discounted":{"description":"The amount discounted from this sale.","type":"number","examples":[0]},"status":{"description":"The sale's display status, which may contain historical text and differs from the accepted status_filter values.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"num_products":{"description":"Number of product records in the selected subset of up to 50, before unavailable summaries are omitted. May exceed products_detailed.length. This is not a complete product count or a sum of purchased quantities.","minimum":0,"type":"integer","examples":[0]},"pending_payment":{"description":"Whether payment for this sale is pending.","type":"boolean"},"shipping_amount":{"description":"The shipping amount applied to this sale.","type":"number","examples":[0]},"tax_amount":{"description":"The tax amount applied to this sale.","type":"number","examples":[0]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/{sale_id}/void":{"post":{"summary":"Void A Sale","description":"Void a sale in its entirety which will either cancel a pending sale, or fully refund all associated payments on a non-pending sale. If the sale is paid, all product sales, shipping and tax will be refunded in their entirety.","operationId":"VoidSale","x-api-permission-description":"Allows the voiding of sales.","x-api-permission":"sale:void","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"Voiding a sale will also cancel any related subscriptions, active trials and shipping at fulfillment.<br><br>Note: If you wish to permanently block a specific customer associated with a sale you are voiding, we recommend you instead use the CreateFraudDetection operation and set source_id:{sale_id} and void_sale:true. This will fully refund the sale, prevent the same credit card from making a purchase and block the customer entirely.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/VoidSale.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"The ID of the sale you wish to void.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"customer_id":{"type":"string","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"description":"The 20 character RevCent ID of the customer, or an empty string when no customer reference is available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the void."},"product_sale_refunded":{"items":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"An array containing the ID's of any product sales refunded as a result of the void."},"shipping_refunded":{"items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"An array containing the ID's of any shipping refunded as a result of the void."},"tax_refunded":{"items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any tax refunded as a result of the void."},"subscription_cancelled":{"items":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"An array containing the ID's of any subscriptions cancelled as a result of the void."},"trial_cancelled":{"items":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"An array containing the ID's of any trials cancelled as a result of the void."},"result":{"type":"string","examples":["Sale successfully void."]},"amount":{"type":"number","description":"Total amount queued for refund by this operation. Zero when no refund is needed; unpaid amounts cancelled without a refund are excluded.","examples":[0]},"campaign_id":{"type":"string","description":"The 20 character RevCent ID of the associated campaign, or an empty string when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_name":{"type":"string","description":"The associated campaign name, or an empty string if unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/{sale_id}/add_fraud_alert":{"post":{"summary":"Add Fraud Alert","description":"Add a fraud alert to an existing sale, allowing further review prior to creating a fraud detection.","operationId":"AddFraudAlert","x-api-permission-description":"Allows the addition of fraud alerts to sales.","x-api-permission":"fraud_alert:add","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/AddFraudAlert.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"The ID of the sale you wish to add a fraud alert to.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"customer_id":{"title":"Customer ID","type":["string","null"],"description":"The 20 character RevCent ID of the customer associated with the sale, or null when the sale has no associated customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/{sale_id}/remove_fraud_alert":{"post":{"summary":"Remove Fraud Alert","description":"Remove a fraud alert from an existing sale.","operationId":"RemoveFraudAlert","x-api-permission-description":"Allows the removal of fraud alerts from sales.","x-api-permission":"fraud_alert:remove","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RemoveFraudAlert.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"The ID of the sale you wish to remove the fraud alert from.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"customer_id":{"title":"Customer ID","type":["string","null"],"description":"The 20 character RevCent ID of the customer associated with the sale, or null when the sale has no associated customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/pending":{"post":{"summary":"Create A Pending Sale","description":"Create an unpaid pending sale without attempting payment. Use UpdatePendingSale to change its details and ProcessPendingSale when ready to pay.","operationId":"CreatePendingSale","x-api-permission-description":"Allows the creation of pending sales.","x-api-permission":"sale:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreatePendingSale.md","tags":["Sales"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"campaign":{"type":"string","minLength":1,"description":"Existing campaign name or 20 character RevCent ID of the campaign. Required when creating the sale. Must contain at least one non-whitespace character.","examples":["Example Campaign"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"ip_address":{"description":"The customer IP address.","type":"string","minLength":1,"examples":["192.0.2.10"]},"credit_card":{"description":"Raw card details. Use top-level payment_method_id instead to select a saved method. Full card details and a nonblank card_code can correct an eligible matching card. See card_code for CVV rules and bill_to for billing replacement. This operation saves corrections without charging.","additionalProperties":false,"properties":{"card_number":{"description":"The full credit card number.","type":"string","writeOnly":true,"examples":["4111111111111111"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","minimum":1,"maximum":12,"examples":[1]},"exp_year":{"type":"integer","anyOf":[{"minimum":0,"maximum":99},{"minimum":1000,"maximum":9999}],"description":"Two-digit or four-digit expiration year.","examples":[0]},"card_code":{"description":"Optional card security code. Submit with full card_number, exp_month and exp_year to correct an eligible matching card without creating a duplicate payment method. Omitted, empty or whitespace-only card_code preserves the saved code. Draft creation and updates save it without charging. A confirmed correction remains saved after a payment decline; failure to confirm it prevents payment. For a fresh CVV on a later attempt, resubmit the full card and code during ProcessPendingSale; payment_method_id alone is not fresh CVV input. Saving a correction does not extend saved-code eligibility. The fresh code applies only to the matching card and does not change billing unless bill_to is supplied.","type":"string","writeOnly":true,"examples":["123"]},"three_ds":{"type":"object","properties":{"acs_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"algorithm":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"authentication_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"cavv":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_server_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"eci":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","const":true,"description":"Set enabled to true whenever you supply this 3DS object so its authentication values are included with the payment.","examples":[true]},"enrollment_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"three_ds_server_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","examples":["EC_v1"]},"xid":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"additionalProperties":false,"description":"Optional 3DS authentication data for newly supplied raw card details. Do not supply it with fresh wallet input or a saved payment-method selection."}},"type":"object","required":["card_number","exp_month","exp_year"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of an existing customer in your account and the API key’s live or test mode. Use customer_id to select the customer; internal_customer_id is for reference only.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"description":"Customer details. For an existing customer, omitted fields preserve saved values; empty or whitespace-only optional address, company and phone fields clear them. Supplied names cannot be blank. See email for the customer email update rules.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Valid customer email address. Omitted or blank input preserves an existing email. The same email is accepted ignoring case and surrounding whitespace; a different nonblank email is rejected before updates. Use EditCustomer to change an existing email. A customer without a saved email may receive one. Without a selected customer, provide a nonblank valid email in customer, bill_to or ship_to.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object","required":[]},"bill_to":{"description":"Complete replacement billing address for the selected card. Supply first_name and last_name; omitted optional fields become empty. Omission preserves saved card billing. This is not a separately saved sale address; a cardless draft has no card on which to save it. A confirmed correction is used on subsequent payment attempts on this same unpaid sale when that card is selected, even if bill_to is omitted. It remains saved after a decline and does not change another card or a provider-held billing profile. This does not update a saved wallet. This operation saves corrections without attempting payment.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid billing contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"ship_to":{"description":"Complete replacement shipping address. Supply first_name and last_name; omitted optional fields become empty. If omitted, shipping uses supplied customer details, then bill_to, then the selected customer's saved details.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid shipping contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"product":{"description":"The products to include in the sale request.","items":{"description":"An individual product","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"description":"Exact product name, internal_id, RevCent product ID, SKU or additional_id.value. The product must be enabled and belong to your account. If a third-party shop is selected, or your API key has a shop association, matching products from that shop take priority, followed by other matching products in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The quantity being purchased. Default is 1.","type":"integer","minimum":1,"examples":[1]},"price":{"description":"The price you wish to charge, if different from the product default price in RevCent.","type":"number","format":"float","minimum":0},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual product when creating a sale. This metadata will be passed to the eventual product sale for the product, which is extremely useful for business metrics.<br><br>For example, if an individual product within a sale is an upsell, you can include metadata with name: 'is_upsell' and value: 'true' for that product. This will allow you to easily run product level reports on all upsells by filtering for the metadata name of 'upsell' and value of 'true'."}},"type":"object","required":["id"]},"type":"array","minItems":1},"shipping":{"description":"Shipping to include in the sale request. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the provider and method IDs.","items":{"description":"An individual shipping entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific shipping entry. A shipping amount can be 0.","type":"number","format":"float","minimum":0},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"An optional name for the shipping entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the shipping entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual shipping entry when creating a sale. This metadata will be passed to the eventual shipping item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"tax":{"description":"Tax to charge in the sale request. Can create multiple tax entries to itemize separate taxes.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific tax entry.","type":"number","format":"float","minimum":0},"name":{"description":"An optional name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the tax entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual tax entry when creating a sale. This metadata will be passed to the eventual tax item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"coupon":{"description":"Include one or more coupon codes which will be used to automatically apply discounts to a sale.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"coupon_code":{"description":"A coupon code which exists in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["coupon_code"]},"type":"array"},"discount":{"description":"Include one or more discount entries which will be used to automatically apply discounts to a sale. Can be a fixed amount or a percentage of the sales total.","items":{"description":"An individual discount entry.","additionalProperties":false,"properties":{"discount_value":{"description":"The coupon discount value relative to the discount_type.","type":"number","format":"float","minimum":0},"discount_type":{"description":"The coupon discount type, either percent or amount. RevCent will calculate the discount if percent.","type":"string","enum":["percent","amount"],"examples":["percent"]},"name":{"description":"An optional name for the discount entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the discount entry.","type":"string","examples":["Example description"]},"apply_to_product":{"description":"Whether to apply the discount to products purchased. Default is true. Set to false if discount should only apply to shipping.","type":"boolean"},"apply_to_shipping":{"description":"Whether to apply the discount to shipping. Default is true. Set to false if discount should only apply to products purchased.","type":"boolean"}},"type":"object","required":["discount_value","discount_type"]},"type":"array"},"internal_sale_id":{"type":"string","description":"Your sale reference. Supplying this value does not guarantee uniqueness or prevent duplicate requests.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_customer_id":{"type":"string","description":"Merchant reference data only; never used to select or automatically match a customer.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"minItems":1,"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["checkout_page"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["v2"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a sale, which will be passed down to all items created as a result of the sale, i.e. the customer, product sales, shipping, tax. This is extremely useful for adding information you wish to view or use for reporting.<br><br><em>Visitor Tracking</em>: If the sale took place on a website, and you have tracking domain DNS set up in RevCent for the website, you must include the following metadata from the visitor/session cookie for the sale:<br>1. {'name': 'revcent_track_id', 'value': '[the value of visitor/session cookie.revcent_track_id]'}<br>2. {'name': 'revcent_entry_id', 'value': '[the value of visitor cookie.revcent_entry_id]'}<br><br><em>Offline Payments</em>: For offline payment sales involving a third party payment processor you must include three metadata entries to ensure proper association of the sale within RevCent to the third party:<br>1. {'name': 'offline_payment_third_party', 'value': 'sezzle | afterpay | klarna | affirm | amazon_pay'}<br>2. {'name': 'offline_payment_third_party_transaction_id', 'value': '[the transaction ID from the third party]'}<br>3. {'name': 'offline_payment_third_party_integration_id', 'value': '[the RevCent ID of the third party integration within your account for the third party processor]'}"},"gateway_id":{"type":"string","description":"20 character RevCent ID of the card payment gateway. An explicit gateway selection is exclusive. For credit-card processing, use gateway_id only to select a specific gateway; otherwise prefer payment_profile. Supply payment_profile or gateway_id when selecting card routing. The gateway is saved for later requests on this pending sale. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile":{"type":"string","description":"Payment-profile routing reference. Prefer payment_profile unless a specific gateway is intended. An explicit gateway_id takes precedence for cards. It can be supplied now and retained for later processing. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"description":"Optional 20 character RevCent ID of a saved customer payment method. Provide it only to select a specific method instead of the existing eligible selection. The method must belong to the selected customer in the same account and live/test mode. Legacy public saved card IDs are also accepted. Do not combine with credit_card or another payment type. Invalid explicit selections fail without substitution. customer_id is required when this field is supplied. Saved wallets use their originating gateway. To pay with a saved wallet, supply its payment_method_id when processing, even if selected during draft creation or update.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the payment outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate update or new payment attempt, including an intentional retry after a failed or declined payment. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent purchase identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]},"third_party_shop":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an available shop owned by your account. An API key without a shop association may select this shop. A shop-associated API key may select only its own shop. Omit to use the API key’s shop association, if any. Existing pending sales retain their stored shop.","example":"KnBKryj7jOFPLW1pqkVM"}},"type":"object","additionalProperties":false,"required":["campaign","product"],"allOf":[{"anyOf":[{"required":["customer_id"]},{"required":["customer"],"properties":{"customer":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}},{"required":["bill_to"],"properties":{"bill_to":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}},{"required":["ship_to"],"properties":{"ship_to":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address used for this customer requirement. Must contain at least one non-whitespace character.","examples":["alex@example.com"]}}}}}],"description":"Creating a pending sale requires customer_id or a valid nonblank email in customer, bill_to, or ship_to. To update or process an existing pending sale, use its sale_id in the corresponding operation’s URL."},{"if":{"required":["payment_method_id"]},"then":{"not":{"anyOf":[{"required":["credit_card"]},{"required":["check_direct"]},{"required":["paypal_account_id"]},{"required":["paypal_transaction_id"]}]},"required":["customer_id"]}},{"required":["ip_address"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"customer_id":{"description":"The customer associated with the pending sale. Successful creation or update always associates a customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","format":"float","description":"The calculated total amount of the pending sale.","examples":[20]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the pending sale.","examples":["Storefront"]},"is_pending":{"type":"boolean","const":true,"description":"Indicates that the sale remains pending.","examples":[true]},"metadata":{"type":"array","description":"The metadata names and values associated with this pending sale request.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["source"]},"value":{"type":"string","description":"The metadata value.","examples":["checkout"]}}}},"payment_type":{"type":"string","description":"The payment type selected for the pending sale.","enum":["Credit Card","PayPal","Offline","Check Direct"],"examples":["Credit Card"]}},"type":"object","additionalProperties":false}}},"description":"Use the sale_id value in the response to refer to the same pending sale when updating, processing or cancelling."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/pending/{sale_id}":{"post":{"summary":"Update A Pending Sale","description":"Update an existing unpaid, uncancelled sale without attempting payment. Use ProcessPendingSale when ready to attempt payment. The sale must belong to your account and the same live/test mode. The existing sale’s shop association is retained and cannot be changed by this operation.","operationId":"UpdatePendingSale","x-api-permission-description":"Allows the update of pending sales.","x-api-permission":"sale:create","x-ai-options":["mcp","ai_voice_agent"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/UpdatePendingSale.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"The sale ID generated when the pending sale was first created.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"campaign":{"type":"string","minLength":1,"description":"Existing campaign name or 20 character RevCent ID of the campaign. Required on every request, even when the sale already has a campaign. Must contain at least one non-whitespace character.","examples":["Example Campaign"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"ip_address":{"description":"The customer IP address.","type":"string","examples":["192.0.2.10"]},"credit_card":{"description":"Raw card details. Use top-level payment_method_id instead to select a saved method. Full card details and a nonblank card_code can correct an eligible matching card. See card_code for CVV rules and bill_to for billing replacement. This operation saves corrections without charging.","additionalProperties":false,"properties":{"card_number":{"description":"The full credit card number.","type":"string","writeOnly":true,"examples":["4111111111111111"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","minimum":1,"maximum":12,"examples":[1]},"exp_year":{"type":"integer","anyOf":[{"minimum":0,"maximum":99},{"minimum":1000,"maximum":9999}],"description":"Two-digit or four-digit expiration year.","examples":[0]},"card_code":{"description":"Optional card security code. Submit with full card_number, exp_month and exp_year to correct an eligible matching card without creating a duplicate payment method. Omitted, empty or whitespace-only card_code preserves the saved code. Draft creation and updates save it without charging. A confirmed correction remains saved after a payment decline; failure to confirm it prevents payment. For a fresh CVV on a later attempt, resubmit the full card and code during ProcessPendingSale; payment_method_id alone is not fresh CVV input. Saving a correction does not extend saved-code eligibility. The fresh code applies only to the matching card and does not change billing unless bill_to is supplied.","type":"string","writeOnly":true,"examples":["123"]},"three_ds":{"type":"object","properties":{"acs_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"algorithm":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"authentication_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"cavv":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_server_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"eci":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","const":true,"description":"Set enabled to true whenever you supply this 3DS object so its authentication values are included with the payment.","examples":[true]},"enrollment_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"three_ds_server_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","examples":["EC_v1"]},"xid":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"additionalProperties":false,"description":"Optional 3DS authentication data for newly supplied raw card details. Do not supply it with fresh wallet input or a saved payment-method selection."}},"type":"object","required":["card_number","exp_month","exp_year"]},"customer":{"description":"Customer details. For an existing customer, omitted fields preserve saved values; empty or whitespace-only optional address, company and phone fields clear them. Supplied names cannot be blank. See email for the customer email update rules.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Valid customer email address. Omitted or blank input preserves an existing email. The same email is accepted ignoring case and surrounding whitespace; a different nonblank email is rejected before updates. Use EditCustomer to change an existing email. A customer without a saved email may receive one. Without a selected customer, provide a nonblank valid email in customer, bill_to or ship_to.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object","required":[]},"bill_to":{"description":"Complete replacement billing address for the selected card. Supply first_name and last_name; omitted optional fields become empty. Omission preserves saved card billing. This is not a separately saved sale address; a cardless draft has no card on which to save it. A confirmed correction is used on subsequent payment attempts on this same unpaid sale when that card is selected, even if bill_to is omitted. It remains saved after a decline and does not change another card or a provider-held billing profile. This does not update a saved wallet. This operation saves corrections without attempting payment.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid billing contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"ship_to":{"description":"Complete replacement shipping address. Supply first_name and last_name; omitted optional fields become empty. Omission preserves the pending sale's saved shipping address.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid shipping contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"product":{"description":"The products to include in the sale request.","items":{"description":"An individual product","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"description":"Exact product name, internal_id, RevCent product ID, SKU or additional_id.value. The product must be enabled and belong to your account. If your API key is associated with a third-party shop, matching products from that shop take priority, followed by other matching products in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"Positive quantity normally. During product merge, zero can remove a line; merge_skip retains an existing matching line instead.","type":"integer","minimum":0,"examples":[0]},"price":{"description":"The price you wish to charge, if different from the product default price in RevCent.","type":"number","format":"float","minimum":0},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual product when creating a sale. This metadata will be passed to the eventual product sale for the product, which is extremely useful for business metrics.<br><br>For example, if an individual product within a sale is an upsell, you can include metadata with name: 'is_upsell' and value: 'true' for that product. This will allow you to easily run product level reports on all upsells by filtering for the metadata name of 'upsell' and value of 'true'."}},"type":"object","required":["id"]},"type":"array"},"shipping":{"description":"Shipping to include in the sale request. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the provider and method IDs.","items":{"description":"An individual shipping entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific shipping entry. A shipping amount can be 0.","type":"number","format":"float","minimum":0},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"An optional name for the shipping entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the shipping entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual shipping entry when creating a sale. This metadata will be passed to the eventual shipping item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"tax":{"description":"Tax to charge in the sale request. Can create multiple tax entries to itemize separate taxes.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific tax entry.","type":"number","format":"float","minimum":0},"name":{"description":"An optional name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the tax entry.","type":"string","examples":["Example description"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for an individual tax entry when creating a sale. This metadata will be passed to the eventual tax item for the sale."}},"type":"object","required":["amount"]},"type":"array"},"coupon":{"description":"Include one or more coupon codes which will be used to automatically apply discounts to a sale. Will overwrite any existing coupon codes already applied to the pending sale.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"coupon_code":{"description":"A coupon code which exists in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["coupon_code"]},"type":"array"},"discount":{"description":"Include one or more discount entries which will be used to automatically apply discounts to a sale. Can be a fixed amount or a percentage of the sales total. Will overwrite any existing discount entries already applied to the pending sale.","items":{"description":"An individual discount entry.","additionalProperties":false,"properties":{"discount_value":{"description":"The coupon discount value relative to the discount_type.","type":"number","format":"float","minimum":0},"discount_type":{"description":"The coupon discount type, either percent or amount. RevCent will calculate the discount if percent.","type":"string","enum":["percent","amount"],"examples":["percent"]},"name":{"description":"An optional name for the discount entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the discount entry.","type":"string","examples":["Example description"]},"apply_to_product":{"description":"Whether to apply the discount to products purchased. Default is true. Set to false if discount should only apply to shipping.","type":"boolean"},"apply_to_shipping":{"description":"Whether to apply the discount to shipping. Default is true. Set to false if discount should only apply to products purchased.","type":"boolean"}},"type":"object","required":["discount_value","discount_type"]},"type":"array"},"internal_sale_id":{"type":"string","description":"Your sale reference. Supplying this value does not guarantee uniqueness or prevent duplicate requests.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_customer_id":{"type":"string","description":"Merchant reference data only; never used to select or automatically match a customer.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["checkout_page"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["v2"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a sale, which will be passed down to all items created as a result of the sale, i.e. the customer, product sales, shipping, tax. This is extremely useful for adding information you wish to view or use for reporting.<br><br><em>Visitor Tracking</em>: If the sale took place on a website, and you have tracking domain DNS set up in RevCent for the website, you must include the following metadata from the visitor/session cookie for the sale:<br>1. {'name': 'revcent_track_id', 'value': '[the value of visitor/session cookie.revcent_track_id]'}<br>2. {'name': 'revcent_entry_id', 'value': '[the value of visitor cookie.revcent_entry_id]'}<br><br><em>Offline Payments</em>: For offline payment sales involving a third party payment processor you must include three metadata entries to ensure proper association of the sale within RevCent to the third party:<br>1. {'name': 'offline_payment_third_party', 'value': 'sezzle | afterpay | klarna | affirm | amazon_pay'}<br>2. {'name': 'offline_payment_third_party_transaction_id', 'value': '[the transaction ID from the third party]'}<br>3. {'name': 'offline_payment_third_party_integration_id', 'value': '[the RevCent ID of the third party integration within your account for the third party processor]'}"},"pending_options":{"description":"When updating a pending sale you have options available that allow you to specify what actions occur given specific conditions.","additionalProperties":false,"properties":{"exists_options":{"description":"The options for each request entity, in which to update the pending sale for existing entities.","additionalProperties":false,"properties":{"product":{"type":"string","description":"What to do with product(s) submitted in the update in regards to product(s) already existing in the pending sale. I.e. Replace, skip, or merge line items already in a pending sale with line items submitted. Note: RevCent matches each product based on the 'id' value submitted in the original request and update request.","enum":["replace","skip","merge_replace","merge_skip","merge_combine"],"x-extra-info":"Enum Definitions:<br><dl class=\"dl-horizontal small\"><dt>replace</dt><dd>Will remove all existing product(s) in the pending sale and replace with product(s) submitted in the request. I.e. Only product(s) submitted will be in the sale after update. <strong>Default</strong></dd><br><dt>skip</dt><dd>Will leave existing product(s) in the sale and not add any new product(s) submitted. I.e. ignoring product(s) submitted. Useful when updating other parts of a pending sale such as payment information, discounts, etc.</dd><br><dt>merge_replace</dt><dd>Will add any new product(s) to the pending sale, keep existing product(s) in the sale and replace existing same ID product(s) with product(s) submitted. I.e. When you want to update a pending sale with new product(s) not already in the sale, keep all existing product(s) but replace same ID existing product(s) with submitted product(s).</dd><br><dt>merge_skip</dt><dd>Will add any new product(s) to the pending sale, and not remove or modify any product(s) which already exist in the sale. I.e. Add new product(s) to an existing sale without touching existing product(s).</dd><br><dt>merge_combine</dt><dd>Will add any new product(s) to the pending sale, keep existing product(s) in the sale, and combine the quantities of existing product(s) with submitted same ID product(s). I.e. Add any new product(s) to the pending sale, keep existing product(s) in the sale and incrementing submitted quantity with same ID existing product(s) quantity.</dd></dl>","examples":["replace"]},"shipping":{"type":"string","description":"What to do if shipping already exists in the pending sale.","enum":["replace","skip"],"x-extra-info":"Enum Definitions:<br><dl class=\"dl-horizontal small\"><dt>replace</dt><dd>Will replace existing shipping with new shipping. <strong>Default</strong></dd><br><dt>skip</dt><dd>Will skip if shipping exists.</dd></dl>","examples":["replace"]},"tax":{"type":"string","description":"What to do if tax already exists in the pending sale.","enum":["replace","skip"],"x-extra-info":"Enum Definitions:<br><dl class=\"dl-horizontal small\"><dt>replace</dt><dd>Will replace existing tax with new tax. <strong>Default</strong></dd><br><dt>skip</dt><dd>Will skip if tax exists.</dd></dl>","examples":["replace"]},"discount":{"type":"string","description":"What to do if discounts already exist in the pending sale.","enum":["replace","skip"],"x-extra-info":"Enum Definitions:<br><dl class=\"dl-horizontal small\"><dt>replace</dt><dd>Will replace existing discounts with new discounts. <strong>Default</strong></dd><br><dt>skip</dt><dd>Will skip if discounts exist.</dd></dl>","examples":["replace"]},"coupon":{"type":"string","enum":["replace","skip"],"description":"Accepted values are validated for compatibility, but a supplied coupon array always replaces the previous array, including an empty array. Omission preserves the previous coupons.","examples":["replace"]}},"type":"object"}},"type":"object"},"gateway_id":{"type":"string","description":"20 character RevCent ID of the card payment gateway. An explicit gateway selection is exclusive. For credit-card processing, use gateway_id only to select a specific gateway; otherwise prefer payment_profile. One routing choice must be supplied or already retained on this pending sale. Omitted routing and same-card billing or CVV corrections preserve compatible saved routing. Selecting a different payment method removes an inherited gateway_id; supply the intended gateway again if needed. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable. When replacing payment or routing, supply fresh applicable 3DS authentication with raw card details if needed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile":{"type":"string","description":"Payment-profile routing reference. Prefer payment_profile unless a specific gateway is intended. An explicit gateway_id takes precedence for cards. A profile or gateway must be supplied or retained on the pending sale. Omitted routing and same-card billing or CVV corrections preserve compatible saved routing. Selecting a different payment method removes an inherited gateway_id; supply the intended gateway again if needed. Supplying payment_profile without gateway_id removes an inherited explicit gateway selection. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable. When replacing payment or routing, supply fresh applicable 3DS authentication with raw card details if needed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of an existing customer in your account and the API key’s live or test mode. Use customer_id to select the customer; internal_customer_id is for reference only.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"description":"Optional 20 character RevCent ID of a saved customer payment method. Provide it only to select a specific method instead of the existing eligible selection. The method must belong to the selected customer in the same account and live/test mode. Legacy public saved card IDs are also accepted. Do not combine with credit_card or another payment type. Invalid explicit selections fail without substitution. Omission preserves the pending sale's eligible payment selection. Saved wallets use their originating gateway. To pay with a saved wallet, supply its payment_method_id when processing, even if selected during draft creation or update.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the payment outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate update or new payment attempt, including an intentional retry after a failed or declined payment. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent purchase identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","additionalProperties":false,"required":["campaign"],"allOf":[{"if":{"required":["product"],"properties":{"product":{"contains":{"required":["quantity"],"properties":{"quantity":{"const":0}}}}}},"then":{"required":["pending_options"],"properties":{"pending_options":{"required":["exists_options"],"properties":{"exists_options":{"required":["product"],"properties":{"product":{"enum":["merge_replace","merge_skip","merge_combine"],"examples":["merge_replace"]}}}}}}}},{"if":{"required":["payment_method_id"]},"then":{"not":{"anyOf":[{"required":["credit_card"]},{"required":["check_direct"]},{"required":["paypal_account_id"]},{"required":["paypal_transaction_id"]}]}}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"customer_id":{"description":"The customer associated with the pending sale. Successful creation or update always associates a customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","format":"float","description":"The calculated total amount of the pending sale.","examples":[20]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the pending sale.","examples":["Storefront"]},"is_pending":{"type":"boolean","const":true,"description":"Indicates that the sale remains pending.","examples":[true]},"metadata":{"type":"array","description":"The metadata names and values associated with this pending sale request.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["source"]},"value":{"type":"string","description":"The metadata value.","examples":["checkout"]}}}},"payment_type":{"type":"string","description":"The payment type selected for the pending sale.","enum":["Credit Card","PayPal","Offline","Check Direct"],"examples":["Credit Card"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/pending/{sale_id}/process":{"post":{"summary":"Process A Pending Sale","description":"Process an existing pending sale using its sale ID. This **will** attempt payment, including another attempt after a decline. Use UpdatePendingSale first for customer, shipping address, product or charge changes. Payment information and billing corrections can be supplied here. The existing sale’s shop association is retained and cannot be changed by this operation.","operationId":"ProcessPendingSale","x-api-permission-description":"Allows the processing of pending sales.","x-api-permission":"sale:create","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ProcessPendingSale.md","tags":["Sales"],"parameters":[{"in":"path","name":"sale_id","description":"The sale ID generated when the pending sale was first created.","required":true,"schema":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"campaign":{"description":"20 character RevCent ID of the campaign. Required on every request, even when the sale already has a campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"payment_profile":{"description":"Payment-profile routing reference. Prefer payment_profile unless a specific gateway is intended. An explicit gateway_id takes precedence for cards. A profile or gateway must be supplied or retained on the pending sale. Omitting routing or repeating an unchanged payment_type preserves compatible saved routing. Same-card billing or CVV corrections also preserve it. Selecting a different payment method removes an inherited gateway_id; supply the intended gateway again if needed. Changing payment_type also removes an inherited payment_profile unless supplied again. Supplying payment_profile without gateway_id removes an inherited explicit gateway selection. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable. When replacing payment or routing, supply fresh applicable 3DS authentication with raw card details if needed.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"credit_card":{"description":"Raw card details or supported fresh Apple Pay/Google Pay input. Use top-level payment_method_id instead to select a saved method. Full card details and a nonblank card_code can correct an eligible matching card. See card_code for CVV rules and bill_to for billing replacement. Fresh CVV is used only for that matching card on this payment attempt.","type":"object","oneOf":[{"additionalProperties":false,"description":"Raw card input. Mutually exclusive with fresh wallet data or top-level payment_method_id.","properties":{"card_number":{"description":"The full credit card number.","type":"string","writeOnly":true,"examples":["4111111111111111"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","minimum":1,"maximum":12,"examples":[1]},"exp_year":{"type":"integer","anyOf":[{"minimum":0,"maximum":99},{"minimum":1000,"maximum":9999}],"description":"Two-digit or four-digit expiration year.","examples":[0]},"card_code":{"description":"Optional card security code. Submit with full card_number, exp_month and exp_year to correct an eligible matching card without creating a duplicate payment method. Omitted, empty or whitespace-only card_code preserves the saved code. Draft creation and updates save it without charging. A confirmed correction remains saved after a payment decline; failure to confirm it prevents payment. For a fresh CVV on a later attempt, resubmit the full card and code during ProcessPendingSale; payment_method_id alone is not fresh CVV input. Saving a correction does not extend saved-code eligibility. The fresh code applies only to the matching card and does not change billing unless bill_to is supplied.","type":"string","writeOnly":true,"examples":["123"]},"three_ds":{"type":"object","properties":{"acs_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"algorithm":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"authentication_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"cavv":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"directory_server_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"eci":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","const":true,"description":"Set enabled to true whenever you supply this 3DS object so its authentication values are included with the payment.","examples":[true]},"enrollment_response":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"three_ds_server_transaction_id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","examples":["EC_v1"]},"xid":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["enabled"],"additionalProperties":false,"description":"Optional 3DS authentication data for newly supplied raw card details. Do not supply it with fresh wallet input or a saved payment-method selection."}},"type":"object","required":["card_number","exp_month","exp_year"]},{"type":"object","oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["native_payload"],"properties":{"native_payload":{"type":"object","additionalProperties":true,"minProperties":1,"properties":{"key_id":{"type":"string","description":"FluidPay Apple Pay credential key ID associated with this encrypted Apple token. Required for every native Apple Pay request whose root gateway_id selects FluidPay; do not include it for Google Pay or another gateway. Exactly 20 lowercase base-32 characters (0–9 and a–v). Supply the complete Apple token with paymentData, paymentMethod and transactionIdentifier beside this field. Provide these fields directly in native_payload; no additional gateway request wrapper is needed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"return_url":{"type":"string","maxLength":2048,"format":"uri","description":"Paysafe payment-handle return URL for the merchant application. Required for native Apple Pay and Google Pay when the root gateway_id selects Paysafe. Use an absolute HTTPS URL without a username or password, at most 2,048 characters. For Google Pay also supply public_api_key in this same native_payload object; Apple Pay must omit public_api_key. RevCent uses return_url when creating the Paysafe payment handle. Challenge continuation remains unsupported. Omit this field for all other gateways.","examples":["https://merchant.example/payment-return"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED means the agreed recurring payment amount is fixed; VARIABLE means the agreed amount may vary. Supply the terms agreed with the payer.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid agreement expiry date in YYYY-MM-DD form, not in the past when the API processes setup. The API verifies that the date is valid and has not expired.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments in whole days, from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ Worldline stored-credential agreement terms. Required in native_payload for ANZ Apple Pay or Google Pay subscription/trial setup as type RECURRING, or unscheduled setup as type UNSCHEDULED. Product-derived subscription/trial intent also requires these terms when future_usage is omitted. RECURRING requires amountVariability, expiryDate and minimumDaysBetweenPayments; UNSCHEDULED accepts only type. Recurring and unscheduled intent cannot be combined. Omit for one-time payments, customer-present-only setup and other gateways. Do not send an agreement ID: RevCent creates the gateway agreement identity. For the ANZ SDK alternative, agreement belongs inside anz_worldline beside its token/session instead."},"pan_type":{"type":"string","const":"mpan","description":"CardPointe Apple Pay merchant-token assertion. Supply the literal mpan when a native Apple Pay payment through CardPointe sets up subscription/trial reuse, including intent inferred from products when future_usage is omitted. This asserts that the Apple token was provisioned as a merchant token; a successful charge does not establish that fact. Omit for one-time native payments. dpan is not accepted here, and this field is prohibited for native Google Pay or another gateway. For the CardPointe SDK alternative, the assertion belongs inside cardpointe beside token instead.","examples":["mpan"]},"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."},"paymentData":{"description":"Original object-valued Apple paymentData inside a complete Apple token, containing version, data, signature and header. FluidPay and Braintree require the complete-token form. Keep paymentMethod and transactionIdentifier at this native_payload level beside paymentData; put gateway supplements here as well, not inside paymentData. Gateways that accept bare paymentData instead receive version, data, signature and header directly inside native_payload."},"paymentMethod":{"description":"Original Apple paymentMethod object in the complete token. Required by FluidPay and Braintree; Braintree requires its original network field to identify the card network. Preserve displayName, type and other Apple-supplied fields when present. This is unrelated to a saved RevCent payment_method_id."},"transactionIdentifier":{"description":"Original Apple transaction identifier from the complete token. Required for native FluidPay Apple Pay; preserve it whenever Apple supplies it for other gateways. This is not a RevCent sale ID or a merchant order reference.","examples":["synthetic-apple-transaction"]}},"description":"Input sent to RevCent: original Apple encrypted paymentData object or complete Apple payment token. Add only fields required by the selected gateway for this native payment or its required future use, directly in this object. Optional gateway context is not accepted in native_payload; use the gateway SDK/tokenization alternative if that context is needed. Do not add another payload wrapper. RevCent uses these supplemental fields to process the payment with the selected gateway. Original wallet fields and encrypted strings are retained. Maximum serialized size: 65,536 UTF-8 bytes. Requirements depending on gateway selection or product configuration are checked when processing the sale. Use a gateway-specific SDK alternative instead when supplying SDK/tokenization results. Only one gateway’s supplemental field family may be present, and it must match gateway_id. Place supplemental fields only at this object’s root; leave identically named fields within the original wallet data unchanged. channel, origin, browserInfo, riskData and processing_channel_id are prohibited here and are available only in the applicable SDK/tokenization alternative. FluidPay and Braintree require the complete-token form rather than bare paymentData. FluidPay additionally requires paymentMethod and transactionIdentifier; Braintree requires paymentMethod.network. Other gateways retain their own original-token validation. Elavon Converge uses this native alternative and has no SDK schema.","allOf":[{"if":{"required":["paymentData"],"properties":{"paymentData":{"type":"object"}}},"then":{"properties":{"paymentData":{"type":"object","required":["version","data","signature","header"],"properties":{"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."}}}}},"else":{"type":"object","required":["version","data","signature","header"],"properties":{"version":{"type":"string","minLength":1,"description":"Original Apple encryption version, such as EC_v1 or RSA_v1. Required with data, signature and header in the bare paymentData form, or inside paymentData in the complete-token form. Preserve the value supplied by Apple; the selected gateway checks supported versions. Must contain at least one non-whitespace character.","examples":["EC_v1"]},"data":{"type":"string","minLength":1,"description":"Original encrypted Apple payment data string. Required in the selected Apple paymentData form. Preserve its exact contents and encoding; do not decrypt, trim, reserialize or add a Base64 layer. RevCent performs any gateway-specific wrapping or encoding internally. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signature":{"type":"string","minLength":1,"description":"Original Apple signature string covering the encrypted payment data. Required in the selected Apple paymentData form. Submit it unchanged; it is not a merchant-generated signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"header":{"type":"object","additionalProperties":true,"description":"Original Apple encrypted-payment header object. Required in the selected Apple paymentData form. Retain Apple’s fields, including transactionId, publicKeyHash and the applicable ephemeralPublicKey or wrappedKey. Required header contents and encoding are checked by the selected gateway; do not replace this object with RevCent gateway settings."}}}},{"if":{"anyOf":[{"required":["key_id"]}]},"then":{"not":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["agreement"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["pan_type"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]}]}}},{"if":{"required":["return_url"]},"then":{"properties":{"return_url":{"examples":["https://merchant.example/payment-return"]}}}}],"dependentRequired":{"public_api_key":["return_url"]},"propertyNames":{"not":{"enum":["channel","origin","browserInfo","riskData","processing_channel_id","public_api_key"]}},"title":"Original Apple Pay payload with native gateway requirements"},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Subscription/trial products require reusable setup and the applicable gateway supplemental fields even when this field is omitted. Fresh zero-total setup also requires a reusable method. Gateway support, merchant configuration and consent still apply; this field does not guarantee reuse or approval."}},"title":"Native Apple Pay","description":"Use original Apple Pay data in native_payload and optional future_usage beside it. Do not also supply a gateway-named SDK/tokenization object. The root gateway_id selects the destination gateway."}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["native_payload"],"properties":{"native_payload":{"type":"object","additionalProperties":true,"minProperties":1,"properties":{"return_url":{"type":"string","maxLength":2048,"format":"uri","description":"Paysafe payment-handle return URL for the merchant application. Required for native Apple Pay and Google Pay when the root gateway_id selects Paysafe. Use an absolute HTTPS URL without a username or password, at most 2,048 characters. For Google Pay also supply public_api_key in this same native_payload object; Apple Pay must omit public_api_key. RevCent uses return_url when creating the Paysafe payment handle. Challenge continuation remains unsupported. Omit this field for all other gateways.","examples":["https://merchant.example/payment-return"]},"public_api_key":{"type":"string","minLength":4,"maxLength":8192,"description":"Paysafe public single-use API credential used for the Google Pay token exchange. Required together with return_url only for native Google Pay when gateway_id selects Paysafe. Supply 4–8,192 characters directly in native_payload. This is the public token-exchange credential, not the private API key configured on the RevCent gateway. Never include it for Apple Pay or another gateway; financial gateway requests use the separately configured gateway credentials.","examples":["synthetic-public-key"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"ANZ agreement purpose: RECURRING for subscription/trial setup, or UNSCHEDULED for merchant-initiated unscheduled setup. Required whenever agreement is supplied; use the form matching the actual future-use intent.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED means the agreed recurring payment amount is fixed; VARIABLE means the agreed amount may vary. Supply the terms agreed with the payer.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid agreement expiry date in YYYY-MM-DD form, not in the past when the API processes setup. The API verifies that the date is valid and has not expired.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments in whole days, from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ Worldline stored-credential agreement terms. Required in native_payload for ANZ Apple Pay or Google Pay subscription/trial setup as type RECURRING, or unscheduled setup as type UNSCHEDULED. Product-derived subscription/trial intent also requires these terms when future_usage is omitted. RECURRING requires amountVariability, expiryDate and minimumDaysBetweenPayments; UNSCHEDULED accepts only type. Recurring and unscheduled intent cannot be combined. Omit for one-time payments, customer-present-only setup and other gateways. Do not send an agreement ID: RevCent creates the gateway agreement identity. For the ANZ SDK alternative, agreement belongs inside anz_worldline beside its token/session instead."},"paymentMethodData":{"type":"object","required":["tokenizationData"],"properties":{"tokenizationData":{"type":"object","required":["type","token"],"properties":{"type":{"const":"PAYMENT_GATEWAY","description":"Required literal PAYMENT_GATEWAY. Google DIRECT tokenization is not supported by this native input contract.","examples":["PAYMENT_GATEWAY"]},"token":{"type":"string","minLength":1,"description":"Original nonblank Google gateway token string. Required. Preserve the exact signed/encrypted string, including escaping; do not parse it into an object, modify signedMessage, decrypt it or add a Base64 wrapper. RevCent submits the token to the selected gateway; no additional preparation is required from the caller.","examples":["synthetic-wallet-token"]}},"additionalProperties":true,"description":"Original Google gateway tokenization result. Required with type PAYMENT_GATEWAY and its original nonblank string token. Generate it for the selected destination gateway and environment; tokens are not interchangeable across gateways."},"type":{"description":"Original Google payment method type. Paysafe requires CARD for native Google Pay. Preserve the provider value; this is separate from the sale-root payment_type, which remains credit_card."}},"additionalProperties":true,"description":"Original Google payment method data. Required for every native Google Pay request. Preserve its tokenizationData and any supplied type, description, info or other original fields."},"apiVersion":{"description":"Original Google Pay API major version. Preserve the value from PaymentData. Paysafe requires 2 for native Google Pay; other gateways retain their own validation.","examples":[2]},"apiVersionMinor":{"description":"Original Google Pay API minor version. Preserve the value from PaymentData. Paysafe requires 0 for native Google Pay; do not replace this with a RevCent API version.","examples":[0]}},"description":"Input sent to RevCent: original Google PaymentData containing paymentMethodData.tokenizationData with type PAYMENT_GATEWAY and its original string token. Add only fields required by the selected gateway for this native payment or its required future use, directly in this object. Optional gateway context is not accepted in native_payload; use the gateway SDK/tokenization alternative if that context is needed. Do not add another payload wrapper. RevCent uses these supplemental fields to process the payment with the selected gateway. Original wallet fields and encrypted strings are retained. Maximum serialized size: 65,536 UTF-8 bytes. Requirements depending on gateway selection or product configuration are checked when processing the sale. Use a gateway-specific SDK alternative instead when supplying SDK/tokenization results. Only one gateway’s supplemental field family may be present, and it must match gateway_id. Place supplemental fields only at this object’s root; leave identically named fields within the original wallet data unchanged. channel, origin, browserInfo, riskData and processing_channel_id are prohibited here and are available only in the applicable SDK/tokenization alternative. Google DIRECT tokenization and a bare signed token are not accepted as native_payload. An extracted FluidPay Google token belongs in the fluid_pay SDK/tokenization alternative. Gateway-specific validation still applies to the original PaymentData; for example, Paysafe requires apiVersion 2, apiVersionMinor 0 and paymentMethodData.type CARD. Elavon Converge uses this native alternative and has no SDK schema.","allOf":[{"required":["paymentMethodData"]},{"if":{"anyOf":[{"required":["key_id"]}]},"then":{"not":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["return_url"]},{"required":["public_api_key"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["agreement"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["agreement"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["pan_type"]}]}}},{"if":{"anyOf":[{"required":["pan_type"]}]},"then":{"not":{"anyOf":[{"required":["key_id"]},{"required":["return_url"]},{"required":["public_api_key"]},{"required":["agreement"]}]}}},{"if":{"required":["return_url"]},"then":{"properties":{"return_url":{"examples":["https://merchant.example/payment-return"]}}}}],"dependentRequired":{"public_api_key":["return_url"],"return_url":["public_api_key"]},"propertyNames":{"not":{"enum":["channel","origin","browserInfo","riskData","processing_channel_id","key_id","pan_type"]}},"title":"Original Google Pay payload with native gateway requirements"},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Subscription/trial products require reusable setup and the applicable gateway supplemental fields even when this field is omitted. Fresh zero-total setup also requires a reusable method. Gateway support, merchant configuration and consent still apply; this field does not guarantee reuse or approval."}},"title":"Native Google Pay","description":"Use original Google Pay data in native_payload and optional future_usage beside it. Do not also supply a gateway-named SDK/tokenization object. The root gateway_id selects the destination gateway."}}},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["nmi"],"properties":{"nmi":{"type":"object","additionalProperties":false,"required":["payment_token"],"properties":{"payment_token":{"type":"string","minLength":1,"writeOnly":true,"description":"The token string from Collect.js callback.token or Payment Component PaymentEvent.token. Both JS sources use this exact shape. Single-use checkout data; not a saved vault ID. Maximum size: 65,536 bytes when UTF-8 encoded. Must contain at least one non-whitespace character.","examples":["synthetic-payment-token"]}},"description":"Required NMI SDK/tokenization input for this variant. Supply the payment_token produced by Collect.js or Payment Component. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Collect.js and Payment Component share one wire contract. Send the extracted token, not the callback object.","title":"NMI Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["nmi"],"properties":{"nmi":{"type":"object","additionalProperties":false,"required":["payment_token"],"properties":{"payment_token":{"type":"string","minLength":1,"writeOnly":true,"description":"The token string from Collect.js callback.token or Payment Component PaymentEvent.token. Both JS sources use this exact shape. Single-use checkout data; not a saved vault ID. Maximum size: 65,536 bytes when UTF-8 encoded. Must contain at least one non-whitespace character.","examples":["synthetic-payment-token"]}},"description":"Required NMI SDK/tokenization input for this variant. Supply the payment_token produced by Collect.js or Payment Component. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Collect.js and Payment Component share one wire contract. Send the extracted token, not the callback object.","title":"NMI Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["authorize_net"],"properties":{"authorize_net":{"type":"object","additionalProperties":false,"required":["opaqueData"],"properties":{"opaqueData":{"type":"object","additionalProperties":false,"required":["dataDescriptor","dataValue"],"properties":{"dataDescriptor":{"type":"string","const":"COMMON.APPLE.INAPP.PAYMENT","description":"Required exact descriptor for this wallet: COMMON.APPLE.INAPP.PAYMENT for Apple Pay or COMMON.GOOGLE.INAPP.PAYMENT for Google Pay. Do not substitute a card-tokenization descriptor.","examples":["COMMON.APPLE.INAPP.PAYMENT"]},"dataValue":{"type":"string","minLength":1,"maxLength":8192,"writeOnly":true,"description":"Wallet payload already Base64-encoded for this Authorize.Net merchant. Passed through without encoding again. Ordinary Accept.js card or bank nonces are not supported wallet inputs.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"Required provider-prepared wallet opaqueData object containing dataDescriptor and dataValue. This alternative does not imply that Accept.js produces Apple/Google wallet nonces."}},"description":"Required Authorize.Net SDK/tokenization input for this variant. Supply provider-prepared opaqueData with its exact dataDescriptor and dataValue. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Provider-prepared opaqueData. This is not a claim that Accept.js returns Apple/Google wallet nonces. Preserve exact provider property casing.","title":"Authorize.Net Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["authorize_net"],"properties":{"authorize_net":{"type":"object","additionalProperties":false,"required":["opaqueData"],"properties":{"opaqueData":{"type":"object","additionalProperties":false,"required":["dataDescriptor","dataValue"],"properties":{"dataDescriptor":{"type":"string","const":"COMMON.GOOGLE.INAPP.PAYMENT","description":"Required exact descriptor for this wallet: COMMON.APPLE.INAPP.PAYMENT for Apple Pay or COMMON.GOOGLE.INAPP.PAYMENT for Google Pay. Do not substitute a card-tokenization descriptor.","examples":["COMMON.GOOGLE.INAPP.PAYMENT"]},"dataValue":{"type":"string","minLength":1,"maxLength":8192,"writeOnly":true,"description":"Wallet payload already Base64-encoded for this Authorize.Net merchant. Passed through without encoding again. Ordinary Accept.js card or bank nonces are not supported wallet inputs.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"Required provider-prepared wallet opaqueData object containing dataDescriptor and dataValue. This alternative does not imply that Accept.js produces Apple/Google wallet nonces."}},"description":"Required Authorize.Net SDK/tokenization input for this variant. Supply provider-prepared opaqueData with its exact dataDescriptor and dataValue. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Provider-prepared opaqueData. This is not a claim that Accept.js returns Apple/Google wallet nonces. Preserve exact provider property casing.","title":"Authorize.Net Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["fluid_pay"],"properties":{"fluid_pay":{"type":"object","additionalProperties":false,"required":["temporary_token"],"properties":{"temporary_token":{"type":"string","minLength":25,"maxLength":25,"writeOnly":true,"description":"WalletJS Apple temporary reference. Single-use, expires after 300 seconds. No key_id or native payload accompanies it. Exactly 25 ASCII letters or digits.","examples":["AAAAAAAAAAAAAAAAAAAAAAAAA"]}},"description":"Required FluidPay SDK/tokenization input for this variant. Supply a WalletJS temporary_token for Apple Pay or an extracted google_pay_token for Google Pay. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Fluidpay WalletJS Apple checkout. Production only. Reusable Apple vault setup adds a provider-owned $1 authorization hold.","title":"FluidPay Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["fluid_pay"],"properties":{"fluid_pay":{"type":"object","additionalProperties":false,"required":["google_pay_token"],"properties":{"google_pay_token":{"oneOf":[{"type":"string","minLength":1,"description":"Original Google token as a JSON string. Its contents must match the alternative object schema. Must contain at least one non-whitespace character."},{"type":"object","additionalProperties":true,"required":["protocolVersion","signature","signedMessage"],"properties":{"protocolVersion":{"type":"string","enum":["ECv1","ECv2"],"description":"Original Google signed-token protocol version, ECv1 or ECv2. Required for the parsed outer-object alternative. ECv2 additionally requires intermediateSigningKey.","examples":["ECv1"]},"signature":{"type":"string","minLength":1,"description":"Required original Google signature string in the parsed signed-token object. Preserve it exactly; do not generate a replacement signature. Must contain at least one non-whitespace character.","examples":["c3ludGhldGlj"]},"signedMessage":{"type":"string","minLength":1,"description":"Original signed inner JSON string. Do not parse, normalize escapes, or reserialize. Must contain at least one non-whitespace character.","examples":["{\"encryptedMessage\":\"synthetic\"}"]},"intermediateSigningKey":{"type":"object","additionalProperties":true,"required":["signedKey","signatures"],"properties":{"signedKey":{"type":"string","minLength":1,"description":"Original signed inner JSON string; preserve exactly. Must contain at least one non-whitespace character.","examples":["{\"keyValue\":\"synthetic\"}"]},"signatures":{"type":"array","minItems":1,"items":{"type":"string","minLength":1,"description":"Original signing-key signature. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Required nonempty array of original signature strings for intermediateSigningKey. Preserve each value exactly."}},"description":"Original Google intermediate signing key object. Required for ECv2. Preserve signedKey as its exact inner JSON string and retain the nonempty signatures array."}},"allOf":[{"if":{"properties":{"protocolVersion":{"const":"ECv2"}}},"then":{"required":["intermediateSigningKey"]}}]}],"writeOnly":true,"description":"Original token string or parsed outer object. Keep signedMessage and intermediateSigningKey.signedKey as exact strings. No additional Base64 layer."}},"description":"Required FluidPay SDK/tokenization input for this variant. Supply a WalletJS temporary_token for Apple Pay or an extracted google_pay_token for Google Pay. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."}},"description":"Extracted Google gateway token, including WalletJS callback data. The same value can also be extracted from native PaymentData, so this shape does not prove a JS origin. String or parsed outer object; combined provider input limit 65536 UTF-8 bytes. Production only.","title":"FluidPay Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["adyen"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"adyen":{"type":"object","properties":{"paymentMethod":{"type":"object","properties":{"type":{"type":"string","const":"applepay","description":"Required Adyen wallet discriminator: applepay for Apple Pay or googlepay for Google Pay. Preserve the provider spelling and case.","examples":["applepay"]},"applePayToken":{"type":"string","minLength":1,"maxLength":10000,"description":"Required Apple Pay token string from the Adyen paymentMethod. Preserve its Base64 representation exactly; do not substitute raw native Apple fields. Accepted length is 1–10,000 characters.","examples":["c3ludGhldGlj"]}},"required":["type","applePayToken"],"additionalProperties":false,"description":"Required exact Adyen Component/Drop-in Advanced state.data.paymentMethod object for the selected wallet. Send this object, not the complete callback or a sessions result."},"channel":{"type":"string","enum":["Web","iOS","Android"],"description":"Optional Adyen SDK channel: Web, iOS or Android. Describe the actual client integration. Accepted only inside adyen with its SDK paymentMethod, never at the native_payload root.","examples":["Web"]},"origin":{"type":"string","maxLength":80,"description":"Exact browser origin: HTTP or HTTPS scheme, host and optional non-default port. Maximum 80 characters. Do not include a path, trailing slash, credentials, query or fragment.","examples":["https://merchant.example"]},"browserInfo":{"type":"object","properties":{"acceptHeader":{"type":"string","minLength":1,"maxLength":4096,"description":"Browser Accept header describing supported response media types. Required when browserInfo is supplied; 1–4,096 characters.","examples":["application/json"]},"userAgent":{"type":"string","minLength":1,"maxLength":4096,"description":"Client browser User-Agent value. Required when browserInfo is supplied; 1–4,096 characters.","examples":["Mozilla/5.0 (Example Browser)"]},"colorDepth":{"anyOf":[{"type":"number","const":1},{"type":"number","const":4},{"type":"number","const":8},{"type":"number","const":15},{"type":"number","const":16},{"type":"number","const":24},{"type":"number","const":30},{"type":"number","const":32},{"type":"number","const":48}],"description":"Client screen color depth in bits. Required when browserInfo is supplied; use one of the listed supported values."},"javaEnabled":{"type":"boolean","description":"Whether Java is enabled in the client browser. Required when browserInfo is supplied; report the observed boolean value."},"javaScriptEnabled":{"type":"boolean","description":"Optional boolean indicating whether JavaScript is enabled in the client browser."},"language":{"type":"string","minLength":1,"maxLength":64,"description":"Client browser language value, such as en-US. Required when browserInfo is supplied; 1–64 characters.","examples":["en-US"]},"screenHeight":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"Client screen height in pixels. Required when browserInfo is supplied; a positive integer.","examples":[1080]},"screenWidth":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"Client screen width in pixels. Required when browserInfo is supplied; a positive integer.","examples":[1920]},"timeZoneOffset":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Client browser time-zone offset in minutes, as reported by Date.getTimezoneOffset(). Required when browserInfo is supplied.","examples":[300]}},"required":["acceptHeader","userAgent","colorDepth","javaEnabled","language","screenHeight","screenWidth","timeZoneOffset"],"additionalProperties":false,"description":"Optional Adyen browser context for the SDK payment. If supplied, include the required browser fields shown here from the actual client. Keep it inside adyen; native_payload does not accept this context."}},"additionalProperties":false,"required":["paymentMethod"],"description":"Maximum size: 65,536 UTF-8 bytes for the JSON object."}},"description":"Pass exact state.data.paymentMethod from the Adyen Component/Drop-in Advanced flow, plus optional provider context. Never pass the whole callback or a /sessions result.","title":"Adyen Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["adyen"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"adyen":{"type":"object","properties":{"paymentMethod":{"type":"object","properties":{"type":{"type":"string","const":"googlepay","description":"Required Adyen wallet discriminator: applepay for Apple Pay or googlepay for Google Pay. Preserve the provider spelling and case.","examples":["googlepay"]},"googlePayToken":{"type":"string","minLength":1,"maxLength":10000,"description":"Required Google Pay token string from the Adyen paymentMethod. Preserve it exactly; do not send the complete Google PaymentData object here. Accepted length is 1–10,000 characters. Must contain at least one non-whitespace character.","examples":["synthetic-google-wallet-token"]}},"required":["type","googlePayToken"],"additionalProperties":false,"description":"Required exact Adyen Component/Drop-in Advanced state.data.paymentMethod object for the selected wallet. Send this object, not the complete callback or a sessions result."},"channel":{"type":"string","enum":["Web","iOS","Android"],"description":"Optional Adyen SDK channel: Web, iOS or Android. Describe the actual client integration. Accepted only inside adyen with its SDK paymentMethod, never at the native_payload root.","examples":["Web"]},"origin":{"type":"string","maxLength":80,"description":"Exact browser origin: HTTP or HTTPS scheme, host and optional non-default port. Maximum 80 characters. Do not include a path, trailing slash, credentials, query or fragment.","examples":["https://merchant.example"]},"browserInfo":{"type":"object","properties":{"acceptHeader":{"type":"string","minLength":1,"maxLength":4096,"description":"Browser Accept header describing supported response media types. Required when browserInfo is supplied; 1–4,096 characters.","examples":["application/json"]},"userAgent":{"type":"string","minLength":1,"maxLength":4096,"description":"Client browser User-Agent value. Required when browserInfo is supplied; 1–4,096 characters.","examples":["Mozilla/5.0 (Example Browser)"]},"colorDepth":{"anyOf":[{"type":"number","const":1},{"type":"number","const":4},{"type":"number","const":8},{"type":"number","const":15},{"type":"number","const":16},{"type":"number","const":24},{"type":"number","const":30},{"type":"number","const":32},{"type":"number","const":48}],"description":"Client screen color depth in bits. Required when browserInfo is supplied; use one of the listed supported values."},"javaEnabled":{"type":"boolean","description":"Whether Java is enabled in the client browser. Required when browserInfo is supplied; report the observed boolean value."},"javaScriptEnabled":{"type":"boolean","description":"Optional boolean indicating whether JavaScript is enabled in the client browser."},"language":{"type":"string","minLength":1,"maxLength":64,"description":"Client browser language value, such as en-US. Required when browserInfo is supplied; 1–64 characters.","examples":["en-US"]},"screenHeight":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"Client screen height in pixels. Required when browserInfo is supplied; a positive integer.","examples":[1080]},"screenWidth":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"Client screen width in pixels. Required when browserInfo is supplied; a positive integer.","examples":[1920]},"timeZoneOffset":{"type":"integer","minimum":-2147483648,"maximum":2147483647,"description":"Client browser time-zone offset in minutes, as reported by Date.getTimezoneOffset(). Required when browserInfo is supplied.","examples":[300]}},"required":["acceptHeader","userAgent","colorDepth","javaEnabled","language","screenHeight","screenWidth","timeZoneOffset"],"additionalProperties":false,"description":"Optional Adyen browser context for the SDK payment. If supplied, include the required browser fields shown here from the actual client. Keep it inside adyen; native_payload does not accept this context."}},"additionalProperties":false,"required":["paymentMethod"],"description":"Maximum size: 65,536 UTF-8 bytes for the JSON object."}},"description":"Pass exact state.data.paymentMethod from the Adyen Component/Drop-in Advanced flow, plus optional provider context. Never pass the whole callback or a /sessions result.","title":"Adyen Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["anz_worldline"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional caller future-use intent. Recurring and unscheduled cannot be combined for one ANZ setup. RevCent also infers subscription/trial intent from the selected products; those products require matching RECURRING agreement terms even if this array is omitted. These terms require actual payer consent."},"anz_worldline":{"type":"object","properties":{"paymentToken":{"type":"string","minLength":1,"maxLength":16384,"description":"Exact encrypted device token JSON string: Apple paymentData as JSON or the original Google tokenizationData.token. Maximum 16,384 characters. Do not send Base64, a card token or a session ID. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED or VARIABLE describes whether the agreed recurring amount can change.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid YYYY-MM-DD agreement expiry date that is not in the past at setup; the API checks calendar validity and expiry.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments, in whole days from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"additionalProperties":false,"required":["paymentToken"],"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Choose a prepared encrypted device token or version-locked MPGS SDK session in this SDK alternative. Agreement terms belong beside that token or session inside anz_worldline. Native input instead uses the common native schema, with agreement directly inside native_payload; do not combine sources. A session must contain only wallet/card and basic order context; no hidden transaction/authentication/customer directives.","allOf":[{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"enum":["subscription","trial"]}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"RECURRING","examples":["RECURRING"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}},{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"const":"unscheduled"}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"UNSCHEDULED","examples":["UNSCHEDULED"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}}],"title":"ANZ Worldline Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["anz_worldline"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional caller future-use intent. Recurring and unscheduled cannot be combined for one ANZ setup. RevCent also infers subscription/trial intent from the selected products; those products require matching RECURRING agreement terms even if this array is omitted. These terms require actual payer consent."},"anz_worldline":{"type":"object","properties":{"session":{"type":"object","properties":{"id":{"type":"string","description":"Required MPGS session identifier for this SDK checkout. Preserve the exact provider value: 31–35 printable non-space ASCII characters. This is not a RevCent sale ID.","examples":["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","description":"Required MPGS session version associated with the supplied session id. Preserve all 10 printable non-space ASCII characters; it locks the session revision used for payment.","examples":["aaaaaaaaaa"]}},"required":["id","version"],"additionalProperties":false,"description":"Version-locked MPGS SDK session containing the wallet data. Required for the session alternative and mutually exclusive with paymentToken. Supply both id and version; the session must contain the wallet data for this payment."},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED or VARIABLE describes whether the agreed recurring amount can change.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid YYYY-MM-DD agreement expiry date that is not in the past at setup; the API checks calendar validity and expiry.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments, in whole days from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"additionalProperties":false,"required":["session"],"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Choose a prepared encrypted device token or version-locked MPGS SDK session in this SDK alternative. Agreement terms belong beside that token or session inside anz_worldline. Native input instead uses the common native schema, with agreement directly inside native_payload; do not combine sources. A session must contain only wallet/card and basic order context; no hidden transaction/authentication/customer directives.","allOf":[{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"enum":["subscription","trial"]}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"RECURRING","examples":["RECURRING"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}},{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"const":"unscheduled"}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"UNSCHEDULED","examples":["UNSCHEDULED"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}}],"title":"ANZ Worldline Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["anz_worldline"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional caller future-use intent. Recurring and unscheduled cannot be combined for one ANZ setup. RevCent also infers subscription/trial intent from the selected products; those products require matching RECURRING agreement terms even if this array is omitted. These terms require actual payer consent."},"anz_worldline":{"type":"object","properties":{"paymentToken":{"type":"string","minLength":1,"maxLength":16384,"description":"Exact encrypted device token JSON string: Apple paymentData as JSON or the original Google tokenizationData.token. Maximum 16,384 characters. Do not send Base64, a card token or a session ID. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED or VARIABLE describes whether the agreed recurring amount can change.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid YYYY-MM-DD agreement expiry date that is not in the past at setup; the API checks calendar validity and expiry.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments, in whole days from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"additionalProperties":false,"required":["paymentToken"],"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Choose a prepared encrypted device token or version-locked MPGS SDK session in this SDK alternative. Agreement terms belong beside that token or session inside anz_worldline. Native input instead uses the common native schema, with agreement directly inside native_payload; do not combine sources. A session must contain only wallet/card and basic order context; no hidden transaction/authentication/customer directives.","allOf":[{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"enum":["subscription","trial"]}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"RECURRING","examples":["RECURRING"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}},{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"const":"unscheduled"}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"UNSCHEDULED","examples":["UNSCHEDULED"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}}],"title":"ANZ Worldline Google Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["anz_worldline"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional caller future-use intent. Recurring and unscheduled cannot be combined for one ANZ setup. RevCent also infers subscription/trial intent from the selected products; those products require matching RECURRING agreement terms even if this array is omitted. These terms require actual payer consent."},"anz_worldline":{"type":"object","properties":{"session":{"type":"object","properties":{"id":{"type":"string","description":"Required MPGS session identifier for this SDK checkout. Preserve the exact provider value: 31–35 printable non-space ASCII characters. This is not a RevCent sale ID.","examples":["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]},"version":{"type":"string","description":"Required MPGS session version associated with the supplied session id. Preserve all 10 printable non-space ASCII characters; it locks the session revision used for payment.","examples":["aaaaaaaaaa"]}},"required":["id","version"],"additionalProperties":false,"description":"Version-locked MPGS SDK session containing the wallet data. Required for the session alternative and mutually exclusive with paymentToken. Supply both id and version; the session must contain the wallet data for this payment."},"agreement":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"UNSCHEDULED","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["UNSCHEDULED"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"RECURRING","description":"Required ANZ agreement type matching the intended use: RECURRING for subscription/trial setup, or UNSCHEDULED for unscheduled merchant-initiated setup.","examples":["RECURRING"]},"amountVariability":{"type":"string","enum":["FIXED","VARIABLE"],"description":"Required for an ANZ RECURRING agreement. FIXED or VARIABLE describes whether the agreed recurring amount can change.","examples":["FIXED"]},"expiryDate":{"type":"string","description":"Required for an ANZ RECURRING agreement. Valid YYYY-MM-DD agreement expiry date that is not in the past at setup; the API checks calendar validity and expiry.","examples":["2030-12-31"]},"minimumDaysBetweenPayments":{"type":"integer","minimum":1,"maximum":9999,"description":"Required for an ANZ RECURRING agreement. Agreed minimum interval between payments, in whole days from 1 through 9999.","examples":[30]}},"required":["type","amountVariability","expiryDate","minimumDaysBetweenPayments"],"additionalProperties":false}],"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"additionalProperties":false,"required":["session"],"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Choose a prepared encrypted device token or version-locked MPGS SDK session in this SDK alternative. Agreement terms belong beside that token or session inside anz_worldline. Native input instead uses the common native schema, with agreement directly inside native_payload; do not combine sources. A session must contain only wallet/card and basic order context; no hidden transaction/authentication/customer directives.","allOf":[{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"enum":["subscription","trial"]}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"RECURRING","examples":["RECURRING"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}},{"if":{"required":["future_usage"],"properties":{"future_usage":{"contains":{"const":"unscheduled"}}}},"then":{"required":["anz_worldline"],"properties":{"anz_worldline":{"required":["agreement"],"properties":{"agreement":{"properties":{"type":{"const":"UNSCHEDULED","examples":["UNSCHEDULED"]}},"description":"ANZ stored-credential terms for the selected SDK token/session. Required as RECURRING for subscription/trial setup or UNSCHEDULED for unscheduled setup, including intent inferred from products when future_usage is omitted. Omit for one-time/customer-present-only setup. Do not send an agreement ID or combine recurring and unscheduled intent. Native input instead places agreement directly in native_payload."}},"description":"Required ANZ Worldline SDK/tokenization input for this variant. Supply a prepared paymentToken or version-locked MPGS session, with agreement terms when required for future use. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}}],"title":"ANZ Worldline Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["braintree"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Optional consented recurring use. RevCent also infers subscription/trial intent from products. Customer-present and unscheduled saved reuse are currently unavailable for Braintree wallets. Omit for one-time payment; free setup still requires recurring/trial intent."},"braintree":{"type":"object","properties":{"nonce":{"type":"string","minLength":1,"maxLength":4096,"description":"Single-use Braintree wallet payment method received from the merchant client integration. Raw card/PayPal methods and existing MULTI_USE IDs are rejected. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card. Use printable ASCII characters without spaces.","examples":["synthetic-braintree-nonce"]},"riskData":{"type":"object","properties":{"deviceData":{"type":"string","minLength":1,"maxLength":65536,"description":"Optional opaque device-data string produced by the Braintree client integration. Preserve it as a string, 1–65,536 characters; do not unpack it into this object.","examples":["{\"synthetic\":true}"]},"customerBrowser":{"type":"string","minLength":1,"maxLength":255,"description":"Optional client browser information string for Braintree risk evaluation, 1–255 characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"description":"Optional Braintree SDK risk context accompanying nonce or paymentMethodId. Supply deviceData and/or customerBrowser when available. This object is not accepted at the native_payload root."}},"additionalProperties":false,"description":"Exact Braintree properties. nonce and paymentMethodId are alternative single-use representations, never reusable provider IDs. riskData is optional client device context; RevCent supplies customerIp from its request context.","required":["nonce"]}},"description":"Exactly one fresh Braintree wallet source. Complete any required payer authentication on the client first. For native Apple Pay, use the separate native input with the complete original Apple token.","title":"Braintree Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["braintree"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Optional consented recurring use. RevCent also infers subscription/trial intent from products. Customer-present and unscheduled saved reuse are currently unavailable for Braintree wallets. Omit for one-time payment; free setup still requires recurring/trial intent."},"braintree":{"type":"object","properties":{"paymentMethodId":{"type":"string","minLength":1,"maxLength":4096,"description":"Single-use Braintree wallet payment method received from the merchant client integration. Raw card/PayPal methods and existing MULTI_USE IDs are rejected. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card. Use printable ASCII characters without spaces.","examples":["synthetic-braintree-method"]},"riskData":{"type":"object","properties":{"deviceData":{"type":"string","minLength":1,"maxLength":65536,"description":"Optional opaque device-data string produced by the Braintree client integration. Preserve it as a string, 1–65,536 characters; do not unpack it into this object.","examples":["{\"synthetic\":true}"]},"customerBrowser":{"type":"string","minLength":1,"maxLength":255,"description":"Optional client browser information string for Braintree risk evaluation, 1–255 characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"description":"Optional Braintree SDK risk context accompanying nonce or paymentMethodId. Supply deviceData and/or customerBrowser when available. This object is not accepted at the native_payload root."}},"additionalProperties":false,"description":"Exact Braintree properties. nonce and paymentMethodId are alternative single-use representations, never reusable provider IDs. riskData is optional client device context; RevCent supplies customerIp from its request context.","required":["paymentMethodId"]}},"description":"Exactly one fresh Braintree wallet source. Complete any required payer authentication on the client first. For native Apple Pay, use the separate native input with the complete original Apple token.","title":"Braintree Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["braintree"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Optional consented recurring use. RevCent also infers subscription/trial intent from products. Customer-present and unscheduled saved reuse are currently unavailable for Braintree wallets. Omit for one-time payment; free setup still requires recurring/trial intent."},"braintree":{"type":"object","properties":{"nonce":{"type":"string","minLength":1,"maxLength":4096,"description":"Single-use Braintree wallet payment method received from the merchant client integration. Raw card/PayPal methods and existing MULTI_USE IDs are rejected. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card. Use printable ASCII characters without spaces.","examples":["synthetic-braintree-nonce"]},"riskData":{"type":"object","properties":{"deviceData":{"type":"string","minLength":1,"maxLength":65536,"description":"Optional opaque device-data string produced by the Braintree client integration. Preserve it as a string, 1–65,536 characters; do not unpack it into this object.","examples":["{\"synthetic\":true}"]},"customerBrowser":{"type":"string","minLength":1,"maxLength":255,"description":"Optional client browser information string for Braintree risk evaluation, 1–255 characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"description":"Optional Braintree SDK risk context accompanying nonce or paymentMethodId. Supply deviceData and/or customerBrowser when available. This object is not accepted at the native_payload root."}},"additionalProperties":false,"description":"Exact Braintree properties. nonce and paymentMethodId are alternative single-use representations, never reusable provider IDs. riskData is optional client device context; RevCent supplies customerIp from its request context.","required":["nonce"]}},"description":"Exactly one fresh Braintree wallet source. Complete any required payer authentication on the client first. For native Apple Pay, use the separate native input with the complete original Apple token.","title":"Braintree Google Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["braintree"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Optional consented recurring use. RevCent also infers subscription/trial intent from products. Customer-present and unscheduled saved reuse are currently unavailable for Braintree wallets. Omit for one-time payment; free setup still requires recurring/trial intent."},"braintree":{"type":"object","properties":{"paymentMethodId":{"type":"string","minLength":1,"maxLength":4096,"description":"Single-use Braintree wallet payment method received from the merchant client integration. Raw card/PayPal methods and existing MULTI_USE IDs are rejected. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card. Use printable ASCII characters without spaces.","examples":["synthetic-braintree-method"]},"riskData":{"type":"object","properties":{"deviceData":{"type":"string","minLength":1,"maxLength":65536,"description":"Optional opaque device-data string produced by the Braintree client integration. Preserve it as a string, 1–65,536 characters; do not unpack it into this object.","examples":["{\"synthetic\":true}"]},"customerBrowser":{"type":"string","minLength":1,"maxLength":255,"description":"Optional client browser information string for Braintree risk evaluation, 1–255 characters.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"description":"Optional Braintree SDK risk context accompanying nonce or paymentMethodId. Supply deviceData and/or customerBrowser when available. This object is not accepted at the native_payload root."}},"additionalProperties":false,"description":"Exact Braintree properties. nonce and paymentMethodId are alternative single-use representations, never reusable provider IDs. riskData is optional client device context; RevCent supplies customerIp from its request context.","required":["paymentMethodId"]}},"description":"Exactly one fresh Braintree wallet source. Complete any required payer authentication on the client first. For native Apple Pay, use the separate native input with the complete original Apple token.","title":"Braintree Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["cardpointe"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Scheduled future use only. Also inferred from products. Google requires a positive first payment; zero-dollar Google setup is rejected. Apple requires a valid MPAN and pan_type assertion; ordinary Apple DPANs cannot be saved."},"cardpointe":{"type":"object","properties":{"token":{"type":"string","description":"Required fresh CardSecure/Mobile SDK wallet token for the initial authorization. Supply 16–19 digits beginning with 9. This is not the saved RevCent payment_method_id.","examples":["9111111111111111"]},"pan_type":{"type":"string","enum":["mpan","dpan"],"description":"Required as mpan for recurring Apple setup. Must reflect a real PKRecurringPaymentRequest merchant token; future_usage and a one-time approval do not prove MPAN.","examples":["mpan"]}},"additionalProperties":false,"description":"CardPointe-specific input. token is the fresh CardSecure/Mobile SDK output for a single initial authorization. pan_type is an integrator assertion about Apple provisioning; CardSecure does not return a documented MPAN confirmation flag.","required":["token"]}},"description":"Supply a fresh CardSecure token in cardpointe. For native Apple/Google fields, use the separate common native input instead; native_payload is not accepted in this SDK variant. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card.","allOf":[{"if":{"required":["future_usage"]},"then":{"required":["cardpointe"],"properties":{"cardpointe":{"required":["pan_type"],"properties":{"pan_type":{"const":"mpan","examples":["mpan"]}},"description":"Required CardPointe SDK/tokenization input for this variant. Supply a fresh CardSecure token, with an Apple MPAN assertion when required for reusable setup. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}}}}],"title":"CardPointe Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["cardpointe"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Scheduled future use only. Also inferred from products. Google requires a positive first payment; zero-dollar Google setup is rejected. Apple requires a valid MPAN and pan_type assertion; ordinary Apple DPANs cannot be saved."},"cardpointe":{"type":"object","properties":{"token":{"type":"string","description":"Required fresh CardSecure/Mobile SDK wallet token for the initial authorization. Supply 16–19 digits beginning with 9. This is not the saved RevCent payment_method_id.","examples":["9111111111111111"]}},"additionalProperties":false,"description":"CardPointe-specific input. token is the fresh CardSecure/Mobile SDK output for a single initial authorization. pan_type is an integrator assertion about Apple provisioning; CardSecure does not return a documented MPAN confirmation flag.","required":["token"]}},"description":"Supply a fresh CardSecure token in cardpointe. For native Apple/Google fields, use the separate common native input instead; native_payload is not accepted in this SDK variant. For supported reuse of an existing RevCent wallet, supply top-level payment_method_id and omit credit_card.","title":"CardPointe Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["checkout_com"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"checkout_com":{"type":"object","properties":{"token":{"type":"string","description":"Required fresh single-use Checkout.com tok_ wallet token. Send the token produced for this gateway and environment, not a Flow session ID, payment ID or saved RevCent wallet ID. Format: tok_ followed by exactly 26 ASCII letters, digits or underscores.","examples":["tok_aaaaaaaaaaaaaaaaaaaaaaaaaa"]},"processing_channel_id":{"type":"string","description":"Optional Checkout.com processing channel identifier for this SDK wallet payment. It is pinned to any resulting saved gateway binding. Keep it inside checkout_com beside token; native_payload does not accept this field. Format: pc_ followed by exactly 26 ASCII letters, digits or underscores.","examples":["pc_aaaaaaaaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"required":["token"],"description":"Required Checkout.com SDK/tokenization input for this variant. Supply a fresh tok_ wallet token, with optional processing_channel_id. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Exactly one new wallet source. Optional checkout_com.processing_channel_id is pinned to a resulting saved binding. A tok_ is single-use, not a reusable instrument or a Flow session/payment ID.","title":"Checkout.com Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["checkout_com"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"checkout_com":{"type":"object","properties":{"token":{"type":"string","description":"Required fresh single-use Checkout.com tok_ wallet token. Send the token produced for this gateway and environment, not a Flow session ID, payment ID or saved RevCent wallet ID. Format: tok_ followed by exactly 26 ASCII letters, digits or underscores.","examples":["tok_aaaaaaaaaaaaaaaaaaaaaaaaaa"]},"processing_channel_id":{"type":"string","description":"Optional Checkout.com processing channel identifier for this SDK wallet payment. It is pinned to any resulting saved gateway binding. Keep it inside checkout_com beside token; native_payload does not accept this field. Format: pc_ followed by exactly 26 ASCII letters, digits or underscores.","examples":["pc_aaaaaaaaaaaaaaaaaaaaaaaaaa"]}},"additionalProperties":false,"required":["token"],"description":"Required Checkout.com SDK/tokenization input for this variant. Supply a fresh tok_ wallet token, with optional processing_channel_id. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Exactly one new wallet source. Optional checkout_com.processing_channel_id is pinned to a resulting saved binding. A tok_ is single-use, not a reusable instrument or a Flow session/payment ID.","title":"Checkout.com Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["cybersource"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"cybersource":{"type":"object","properties":{"transientTokenJwt":{"type":"string","maxLength":65536,"description":"Required signed transient wallet token returned by CyberSource Unified Checkout with automatic payment processing disabled. Preserve the original three-part JWT string, at most 65,536 characters. It is not a saved payment token.","examples":["eyJhbGciOiJub25lIn0.eyJleGFtcGxlIjp0cnVlfQ.c3ludGhldGlj"]},"capture_context":{"type":"string","maxLength":65536,"description":"Required original signed capture-context JWT associated with this Unified Checkout token. Preserve the three-part JWT string, at most 65,536 characters, and supply it together with transientTokenJwt.","examples":["eyJhbGciOiJub25lIn0.eyJleGFtcGxlIjp0cnVlfQ.c3ludGhldGlj"]}},"required":["transientTokenJwt","capture_context"],"additionalProperties":false,"description":"Required CyberSource SDK/tokenization input for this variant. Supply a Unified Checkout transientTokenJwt accompanied by its signed capture_context. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Exactly one fresh wallet source. future_usage requests TMS setup; it does not assert reusability. Unified Checkout must return a transient JWT with automatic processing disabled, accompanied by the signed capture context.","title":"CyberSource Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["cybersource"],"properties":{"future_usage":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","enum":["customer_present","subscription","trial","unscheduled"],"examples":["customer_present"]},"description":"Optional future-use intent. Omit for one-time purchases. Subscription/trial products and fresh zero-total setup require a reusable payment method even when this field is omitted. Enable gateway token settings and confirm successful setup before reuse. This field does not establish customer consent or guarantee future approval. Duplicate values are accepted."},"cybersource":{"type":"object","properties":{"transientTokenJwt":{"type":"string","maxLength":65536,"description":"Required signed transient wallet token returned by CyberSource Unified Checkout with automatic payment processing disabled. Preserve the original three-part JWT string, at most 65,536 characters. It is not a saved payment token.","examples":["eyJhbGciOiJub25lIn0.eyJleGFtcGxlIjp0cnVlfQ.c3ludGhldGlj"]},"capture_context":{"type":"string","maxLength":65536,"description":"Required original signed capture-context JWT associated with this Unified Checkout token. Preserve the three-part JWT string, at most 65,536 characters, and supply it together with transientTokenJwt.","examples":["eyJhbGciOiJub25lIn0.eyJleGFtcGxlIjp0cnVlfQ.c3ludGhldGlj"]}},"required":["transientTokenJwt","capture_context"],"additionalProperties":false,"description":"Required CyberSource SDK/tokenization input for this variant. Supply a Unified Checkout transientTokenJwt accompanied by its signed capture_context. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Exactly one fresh wallet source. future_usage requests TMS setup; it does not assert reusability. Unified Checkout must return a transient JWT with automatic processing disabled, accompanied by the signed capture context.","title":"CyberSource Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["paysafe"],"properties":{"paysafe":{"type":"object","additionalProperties":false,"required":["payment_handle_token","merchant_ref_num"],"properties":{"payment_handle_token":{"type":"string","description":"Paysafe Payments API single-use handle from SDK result.token. Not a Cards/Vault paymentToken. Use 1–36 ASCII letters, digits, underscores or hyphens.","examples":["synthetic-handle"]},"merchant_ref_num":{"type":"string","minLength":1,"maxLength":255,"description":"Exact merchantRefNum supplied when the SDK created this handle; enables authenticated lookup and validation.","examples":["example-order-1001"]}},"description":"Required Paysafe SDK/tokenization input for this variant. Supply a Payments API payment_handle_token and the exact merchant_ref_num used to create it. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":2,"uniqueItems":true,"items":{"type":"string","enum":["subscription","trial"],"examples":["subscription"]},"description":"Optional recurring consent, also derived from sale products. Requires actual Apple MPAN provisioning and positive initial payment."}},"description":"Supply a current Paysafe Payments API SDK handle and its exact merchant reference in paysafe. For native wallet fields, use the common native input with Paysafe supplements inside native_payload instead. Completed payments and Cards/Vault API tokens are not accepted as SDK handles.","title":"Paysafe Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["paysafe"],"properties":{"paysafe":{"type":"object","additionalProperties":false,"required":["payment_handle_token","merchant_ref_num"],"properties":{"payment_handle_token":{"type":"string","description":"Paysafe Payments API single-use handle from SDK result.token. Not a Cards/Vault paymentToken. Use 1–36 ASCII letters, digits, underscores or hyphens.","examples":["synthetic-handle"]},"merchant_ref_num":{"type":"string","minLength":1,"maxLength":255,"description":"Exact merchantRefNum supplied when the SDK created this handle; enables authenticated lookup and validation.","examples":["example-order-1001"]}},"description":"Required Paysafe SDK/tokenization input for this variant. Supply a Payments API payment_handle_token and the exact merchant_ref_num used to create it. Use this object only with the matching root gateway_id; it cannot accompany native_payload."}},"description":"Supply a current Paysafe Payments API SDK handle and its exact merchant reference in paysafe. For native wallet fields, use the common native input with Paysafe supplements inside native_payload instead. Completed payments and Cards/Vault API tokens are not accepted as SDK handles.","title":"Paysafe Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."},{"oneOf":[{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["stripe"],"properties":{"stripe":{"type":"object","additionalProperties":false,"required":["token"],"properties":{"token":{"type":"string","writeOnly":true,"description":"Fresh wallet credential from the originating Stripe account and environment. Authenticated provider lookup verifies wallet type and ownership. Format: tok_ followed by 1–200 ASCII letters or digits.","examples":["tok_aaaaaaaaaaaaaaaaaaaaaaaaaa"]}},"description":"Required Stripe SDK/tokenization input for this variant. Supply a wallet token or wallet PaymentMethod identifier for the initial payment or setup. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"enum":["subscription","trial","unscheduled"],"examples":["subscription"]},"description":"Off-session consent only. Omit for one-time payment. Zero initial amount requires successful SetupIntent and confirmed Customer/PaymentMethod attachment."}},"description":"Fresh Stripe wallet credential. Apple saved CIT is prohibited; Google saved CIT is unimplemented. Off-session future use requires customer consent and successful PaymentIntent/SetupIntent.","title":"Stripe Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["apple_pay"],"properties":{"apple_pay":{"type":"object","additionalProperties":false,"required":["stripe"],"properties":{"stripe":{"type":"object","additionalProperties":false,"required":["payment_method_id"],"properties":{"payment_method_id":{"type":"string","writeOnly":true,"description":"Fresh wallet credential from the originating Stripe account and environment. Authenticated provider lookup verifies wallet type and ownership. Format: pm_ followed by 1–200 ASCII letters or digits.","examples":["pm_syntheticExample"]}},"description":"Required Stripe SDK/tokenization input for this variant. Supply a wallet token or wallet PaymentMethod identifier for the initial payment or setup. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"enum":["subscription","trial","unscheduled"],"examples":["subscription"]},"description":"Off-session consent only. Omit for one-time payment. Zero initial amount requires successful SetupIntent and confirmed Customer/PaymentMethod attachment."}},"description":"Fresh Stripe wallet credential. Apple saved CIT is prohibited; Google saved CIT is unimplemented. Off-session future use requires customer consent and successful PaymentIntent/SetupIntent.","title":"Stripe Apple Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["stripe"],"properties":{"stripe":{"type":"object","additionalProperties":false,"required":["token"],"properties":{"token":{"type":"string","writeOnly":true,"description":"Fresh wallet credential from the originating Stripe account and environment. Authenticated provider lookup verifies wallet type and ownership. Format: tok_ followed by 1–200 ASCII letters or digits.","examples":["tok_aaaaaaaaaaaaaaaaaaaaaaaaaa"]}},"description":"Required Stripe SDK/tokenization input for this variant. Supply a wallet token or wallet PaymentMethod identifier for the initial payment or setup. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"enum":["subscription","trial","unscheduled"],"examples":["subscription"]},"description":"Off-session consent only. Omit for one-time payment. Zero initial amount requires successful SetupIntent and confirmed Customer/PaymentMethod attachment."}},"description":"Fresh Stripe wallet credential. Apple saved CIT is prohibited; Google saved CIT is unimplemented. Off-session future use requires customer consent and successful PaymentIntent/SetupIntent.","title":"Stripe Google Pay SDK/tokenization"}}},{"type":"object","additionalProperties":false,"required":["google_pay"],"properties":{"google_pay":{"type":"object","additionalProperties":false,"required":["stripe"],"properties":{"stripe":{"type":"object","additionalProperties":false,"required":["payment_method_id"],"properties":{"payment_method_id":{"type":"string","writeOnly":true,"description":"Fresh wallet credential from the originating Stripe account and environment. Authenticated provider lookup verifies wallet type and ownership. Format: pm_ followed by 1–200 ASCII letters or digits.","examples":["pm_syntheticExample"]}},"description":"Required Stripe SDK/tokenization input for this variant. Supply a wallet token or wallet PaymentMethod identifier for the initial payment or setup. Use this object only with the matching root gateway_id; it cannot accompany native_payload."},"future_usage":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"enum":["subscription","trial","unscheduled"],"examples":["subscription"]},"description":"Off-session consent only. Omit for one-time payment. Zero initial amount requires successful SetupIntent and confirmed Customer/PaymentMethod attachment."}},"description":"Fresh Stripe wallet credential. Apple saved CIT is prohibited; Google saved CIT is unimplemented. Off-session future use requires customer consent and successful PaymentIntent/SetupIntent.","title":"Stripe Google Pay SDK/tokenization"}}}],"description":"Required wallet selection for this payment. Choose exactly one supported Apple Pay or Google Pay SDK/tokenization variant."}]}]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["checkout_page"],"minLength":1,"maxLength":100},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["v2"],"minLength":1,"maxLength":255}},"type":"object","required":["name","value"]},"type":"array","description":"You have the option to provide metadata for a sale, which will be passed down to all items created as a result of the sale, i.e. the customer, product sales, shipping, tax. This is extremely useful for adding information you wish to view or use for reporting.<br><br><em>Visitor Tracking</em>: If the sale took place on a website, and you have tracking domain DNS set up in RevCent for the website, you must include the following metadata from the visitor/session cookie for the sale:<br>1. {'name': 'revcent_track_id', 'value': '[the value of visitor/session cookie.revcent_track_id]'}<br>2. {'name': 'revcent_entry_id', 'value': '[the value of visitor cookie.revcent_entry_id]'}<br><br><em>Offline Payments</em>: For offline payment sales involving a third party payment processor you must include three metadata entries to ensure proper association of the sale within RevCent to the third party:<br>1. {'name': 'offline_payment_third_party', 'value': 'sezzle | afterpay | klarna | affirm | amazon_pay'}<br>2. {'name': 'offline_payment_third_party_transaction_id', 'value': '[the transaction ID from the third party]'}<br>3. {'name': 'offline_payment_third_party_integration_id', 'value': '[the RevCent ID of the third party integration within your account for the third party processor]'}"},"gateway_id":{"type":"string","description":"20 character RevCent ID of the card payment gateway. An explicit gateway selection is exclusive. For credit-card processing, use gateway_id only to select a specific gateway; otherwise prefer payment_profile. One routing choice must be supplied or already retained on this pending sale. Omitting routing or repeating an unchanged payment_type preserves compatible saved routing. Same-card billing or CVV corrections also preserve it. Selecting a different payment method removes an inherited gateway_id; supply the intended gateway again if needed. Changing payment_type also removes an inherited payment_profile unless supplied again. Saved wallets use their originating gateway. Integration-specific configured routing takes precedence where applicable. Fresh wallet input requires the matching gateway_id. When replacing payment or routing, supply fresh applicable 3DS authentication with raw card details if needed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_type":{"type":"string","enum":["credit_card","paypal","offline_payment","check_direct"],"description":"Payment type for this attempt. Cards and Apple Pay/Google Pay use credit_card. If omitted, the stored or default card payment context is used. Repeating an unchanged type preserves compatible saved routing; changing type clears inherited gateway/profile routing unless explicitly supplied again.","examples":["credit_card"]},"check_direct":{"type":"object","properties":{"check_number":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"mail_to_address":{"type":"object","properties":{"address_line_1":{"type":"string","examples":["123 Example Street"]},"address_line_2":{"type":"string","examples":["Suite 100"]},"city":{"type":"string","examples":["Boston"]},"company":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"first_name":{"type":"string","examples":["Alex"]},"last_name":{"type":"string","examples":["River"]},"state":{"type":"string","examples":["MA"]},"zip":{"type":"string","examples":["02108"]}},"additionalProperties":false},"pay_to_address":{"type":"object","properties":{"address_line_1":{"type":"string","examples":["123 Example Street"]},"address_line_2":{"type":"string","examples":["Suite 100"]},"city":{"type":"string","examples":["Boston"]},"company":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"first_name":{"type":"string","examples":["Alex"]},"last_name":{"type":"string","examples":["River"]},"state":{"type":"string","examples":["MA"]},"zip":{"type":"string","examples":["02108"]}},"additionalProperties":false}},"additionalProperties":false},"paypal_account_id":{"type":"string","description":"Required if payment_type is paypal. The RevCent ID for the PayPal account to use for the sale. The PayPal account must have been already added in RevCent. Retrieve the PayPal account ID by using the GetPayPalAccounts operation and finding the ID for the PayPal account you wish to use. The paypal_transaction_id property is also required if payment_type is paypal and providing a paypal_account_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"paypal_transaction_id":{"type":"string","description":"Required if payment_type is paypal. The ID issued by PayPal for the transaction. The paypal_account_id property is also required if payment_type is paypal and providing a paypal_transaction_id.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"description":"Optional 20 character RevCent ID of a saved customer payment method. Provide it only to select a specific method instead of the existing eligible selection. The method must belong to the selected customer in the same account and live/test mode. Legacy public saved card IDs are also accepted. Do not combine with credit_card or another payment type. Invalid explicit selections fail without substitution. Omission preserves the pending sale's eligible payment selection. Saved wallets use their originating gateway.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"bill_to":{"description":"Complete replacement billing address for the selected card. Supply first_name and last_name; omitted optional fields become empty. Omission preserves saved card billing. This is not a separately saved sale address; a cardless draft has no card on which to save it. A confirmed correction is used on subsequent payment attempts on this same unpaid sale when that card is selected, even if bill_to is omitted. It remains saved after a decline and does not change another card or a provider-held billing profile. This does not update a saved wallet.A correction supplied here is saved before the payment attempt; failure to confirm it prevents payment.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid billing contact email. Omitted or blank input leaves this field empty in a supplied replacement address. It does not replace a selected customer's email. It may supply the initial customer email when no customer is selected and no earlier identity email is provided.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the payment outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate update or new payment attempt, including an intentional retry after a failed or declined payment. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent purchase identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","additionalProperties":false,"required":["campaign"],"allOf":[{"if":{"required":["credit_card"],"properties":{"credit_card":{"anyOf":[{"required":["apple_pay"]},{"required":["google_pay"]}]}}},"then":{"required":["gateway_id"],"properties":{"gateway_id":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_type":{"const":"credit_card","examples":["credit_card"]}}}},{"if":{"required":["payment_type"],"properties":{"payment_type":{"const":"paypal"}}},"then":{"required":["paypal_account_id","paypal_transaction_id"]}},{"if":{"required":["payment_method_id"]},"then":{"not":{"anyOf":[{"required":["credit_card"]},{"required":["check_direct"]},{"required":["paypal_account_id"]},{"required":["paypal_transaction_id"]}]},"properties":{"payment_type":{"const":"credit_card","examples":["credit_card"]}}}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"title":"Sale Success Response","description":"The successful sale outcome and related resources, with payment details when a payment was processed.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","examples":[0]},"amount":{"description":"The sale amount.","type":"number","format":"float"},"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"type":"object","additionalProperties":false,"description":"The customer response object contains the details of the customer related to the item.","properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked."},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"The customer first name.","examples":["Alex"]},"internal_id":{"type":"string","description":"Your reference for the customer, such as the customer ID in your own system.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_name":{"type":"string","description":"The customer last name.","examples":["River"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"type":"string","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"description":"The 20 character RevCent ID of the customer, or an empty string when the returned customer details do not include an ID.","examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"type":"array","maxItems":10,"description":"Available customer metadata, with up to ten entries. Existing names and values are returned as recorded.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["Example"]},"value":{"type":"string","description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}}},"customer_card_id":{"description":"The 20 character RevCent ID of the selected card, also returned as card_id, or an empty string when no card ID is available. This response field is not a request parameter.","type":"string","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"discount_created":{"type":"array","description":"An array of any discounts created.","items":{"type":"object","additionalProperties":false,"description":"A discount item.","properties":{"id":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"name":{"type":"string","description":"The discount name.","examples":["Example"]},"description":{"type":"string","description":"The discount description.","examples":["Example description"]},"discount_amount":{"type":"number","format":"float","description":"The discount dollar amount."},"discount_percent":{"type":"number","format":"float","description":"The calculated discount percentage of the sale total."}}}},"fraud_detection_response":{"description":"The fraud-check outcome associated with the sale, including an alert that allowed payment. May also indicate that no check was performed.","type":"object","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"gateway":{"type":"string","description":"The gateway which processed the successful sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"has_fraud_alert":{"type":"boolean","description":"Whether the sale has a fraud alert"},"internal_customer_id":{"description":"Your customer reference, such as a customer ID from another service. For reference only; it cannot be used to select a customer.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_sale_id":{"description":"Your sale reference, such as an order ID from another service. For reference only.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ip_address":{"type":"string","description":"The customer IP address.","examples":["192.0.2.10"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","minLength":3,"maxLength":3,"examples":["USD"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair."},"payment_type":{"type":"string","description":"The sale payment type.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_sale_created":{"type":"array","description":"Product sales created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"price":{"type":"number","description":"The product price specific to the product sale.","examples":[0]},"quantity":{"type":"integer","description":"The product quantity specific to the product sale.","examples":[0]},"product":{"type":"object","additionalProperties":false,"description":"The product Schema","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the product sale.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this product sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the product sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"subscription":{"type":["object","null"],"additionalProperties":false,"description":"The ID of a subscription created specific to the product sale. Null when no related subscription was created.","properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}},"trial":{"type":["object","null"],"additionalProperties":false,"description":"The ID of a trial created specific to the product sale. Null when no related trial was created.","properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}}}}},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"salvage_transaction":{"description":"The salvage transaction for any remaining payment amount, or null when none was created.","type":["object","null"],"additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Indicates whether a salvage transaction was created."},"ship_to":{"title":"Ship To Object","type":["object","null"],"additionalProperties":false,"description":"The shipping destination, or null when no shipping destination is available.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The shipping email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}}},"shipping_created":{"type":"array","description":"An array of any shipping created.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"amount_discounted":{"description":"The amount of any discounts.","type":"number","format":"float","examples":[15.44]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]},"id":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"subscription_created":{"type":"array","description":"An array of any subscriptions created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"start_date_unix":{"description":"Unix timestamp of when the subscription starts.","type":"integer","format":"unix-time","examples":[1893499200]},"next_renewal_date_unix":{"description":"The next renewal date as a Unix timestamp in seconds, or null when no date is set.","type":["integer","null"],"format":"unix-time","examples":[1893499200]},"product_sale":{"type":"object","additionalProperties":false,"description":"The product sale related to the subscription.","properties":{"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}},"product":{"type":"object","additionalProperties":false,"description":"The product related to the subscription.","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the subscription.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"trial":{"type":["object","null"],"additionalProperties":false,"description":"The related trial, or null when this subscription has no trial.","properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}}}}},"tax_created":{"type":"array","description":"Any tax created as a result of the sale.","items":{"type":"object","additionalProperties":false,"properties":{"amount_original_total":{"description":"The total calculated amount when an item is first created. I.e. the sum of all products, tax and shipping without discounts applied.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The current total amount after any refunds and discounts applied. amount_original_total - (amount_refunded + amount_discounted)","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The current gross amount, money actually transacted. payments - payments_refunded","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The current net amount. amount_gross - amount_fees","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The current total payment-processing fees deducted from the gross amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The current amount captured but not yet settled.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The current amount settled.","type":"number","format":"float","examples":[105.06]},"amount_refunded":{"description":"The current amount of any refunds, including cancelled trial amounts.","type":"number","format":"float","examples":[3.21]},"id":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"name":{"description":"The name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"The description for the tax entry.","type":"string","examples":["Example description"]},"rate":{"type":"number","format":"float","description":"The calculated tax rate."},"amount_remaining":{"description":"The current amount remaining to be processed. I.e. trials not yet expired or salvage transactions not yet salvaged. amount_to_salvage + awaiting_trial_expirations","type":"number","format":"float","examples":[2.23]},"amount_to_salvage":{"description":"The current amount of any salvage transactions not yet salvaged.","type":"number","format":"float","examples":[2.23]}}}},"third_party_shop":{"description":"The originating user shop, or null when no shop is associated.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["Example"]}},"type":["object","null"]},"transaction_id":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"trial_created":{"type":"array","description":"The trial_created Schema","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"num_days":{"type":"integer","description":"The total duration of the trial in days","examples":[0]},"end_date_unix":{"description":"Unix timestamp of when the trial is set to expire.","type":"integer","format":"unix-time","examples":[1893499200]},"product_sale":{"type":"object","additionalProperties":false,"description":"The product sale related to the trial.","properties":{"id":{"type":"string","description":"A 20 character product sale ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]}}},"product":{"type":"object","additionalProperties":false,"description":"The product related to the trial.","properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name specific to the trial.","examples":["Example"]},"internal_id":{"type":"string","description":"Your reference for the product associated with this trial.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU specific to the trial.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"subscription":{"type":["object","null"],"additionalProperties":false,"description":"The related subscription, or null when this trial has no subscription.","properties":{"id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}}}}},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"wallet_setup":{"type":"string","enum":["not_requested","ready","failed","unknown"],"description":"Wallet credential setup outcome when reported by the payment processor.","examples":["not_requested"]},"wallet_reusable":{"type":"boolean","description":"Whether a usable reusable wallet method was established for this result; future lifecycle/provider restrictions still apply."},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of the wallet payment method, when one was created. Use this ID for supported future payments.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"gateway_name":{"description":"The gateway name reported for the successful payment attempt.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_result_phrase":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_transaction_id":{"type":["string","null"],"description":"The gateway transaction reference, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"user_gateway":{"type":"object","description":"The gateway used for the attempt.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}}},"has_salvage_transaction":{"type":"boolean","description":"Whether a salvage transaction was created for the remaining payment amount, when reported by the payment profile."},"check_direct":{"type":"object","additionalProperties":false,"description":"The check payment created for this sale.","properties":{"amount":{"type":"number","description":"The payment amount in the sale currency.","examples":[0]},"id":{"type":"string","description":"A 20 character check direct ID.","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]}}},"offline_payment":{"type":"object","additionalProperties":false,"description":"The offline payment recorded for this sale.","properties":{"amount":{"type":"number","description":"The payment amount in the sale currency.","examples":[0]},"id":{"type":"string","description":"A 20 character offline payment ID.","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]}}}}}]}}},"description":"Successful response."},"400":{"description":"Invalid request, operation validation failure or payment blocked by a fraud check.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"The selected gateway requires additional anti-fraud configuration.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0689"],"examples":["E0689"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"reasons":{"type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Account requirements that must be satisfied before using the selected gateway."}}},{"type":"object","description":"Payment was not processed because a fraud check blocked the sale.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"Fraud prevented payment.","enum":[5],"examples":[5]},"customer_id":{"type":["string","null"],"description":"The 20 character RevCent ID of the customer.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"sale_id":{"type":["string","null"],"description":"The 20 character RevCent ID of the sale.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"message":{"type":"string","description":"The reason payment was not processed.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The unsuccessful payment summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_response":{"type":"object","description":"The fraud-check result associated with this payment attempt.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"402":{"description":"Payment declined or unsuccessful, as indicated by the response code.","content":{"application/json":{"schema":{"type":"object","description":"An unsuccessful sale payment attempt. Gateway and transaction details are present only when available.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"The payment outcome: 2 for declined, 3 for an error.","enum":[2,3],"examples":[2]},"message":{"type":"string","description":"A human-readable explanation of the unsuccessful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The payment outcome summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","description":"The attempted payment amount, when a gateway attempt was made.","examples":[0]},"sale_id":{"type":"string","description":"A 20 character sale ID.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"transaction_id":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"gateway_name":{"type":"string","description":"The gateway name for the last attempt.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"gateway_result_phrase":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_transaction_id":{"type":["string","null"],"description":"The gateway transaction reference, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"user_gateway":{"type":"object","description":"The gateway used for the attempt.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}}},"custom_error":{"type":"string","description":"The payment-profile message supplied for a declined payment, when configured.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"kill_profile":{"type":"boolean","description":"Whether the payment profile was stopped by a configured response rule."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"max_attempts_reached":{"type":"boolean","description":"Whether the configured maximum number of payment attempts was reached."},"fraud_detection_response":{"type":"object","description":"The fraud-check result associated with this payment attempt.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud outcome: 0 for an error, 1 for no fraud, 5 for blocked payment, or 6 for an alert that allowed payment.","enum":[0,1,5,6],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether fraud was detected."},"fraud_detection_created":{"type":["array","null"],"description":"IDs of fraud detections created, or null when none were created.","items":{"type":"string","description":"A 20 character fraud detection ID.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]}},"fraud_detection_request":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}},"fraud_detection_requests":{"type":"array","description":"Fraud checks included when the response supplies a list.","items":{"type":"object","description":"The result of a fraud check associated with the sale.","additionalProperties":false,"properties":{"code":{"type":"integer","description":"The fraud check outcome: 0 for an error, 1 for no fraud, or 2 for detected fraud.","enum":[0,1,2],"examples":[0]},"fraud_detected":{"type":"boolean","description":"Whether this check detected fraud."},"id":{"type":"string","description":"A 20 character fraud detection request ID.","minLength":20,"maxLength":20,"examples":["RJ8a2blwBlFbbwPppNZA"]},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score_threshold_bound":{"type":"string","description":"The score threshold direction.","enum":["upper"],"examples":["upper"]},"step":{"type":"integer","description":"The check step number.","examples":[0]},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"raw_response":{"type":"object","description":"The fraud provider report, when available. Its fields depend on the provider.","additionalProperties":true},"initiated_by":{"type":"string","enum":["fraud_detection_profile","self"],"description":"Whether a fraud profile selected this check or the check ran directly.","examples":["fraud_detection_profile"]},"score_threshold":{"type":"number","description":"The configured fraud score threshold.","examples":[0]},"third_party":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The fraud provider associated with this check."},"third_party_fraud_detection_id":{"type":"string","description":"The fraud provider’s identifier for this check, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID, or an empty string when unavailable.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}},"description":"The connected fraud provider account used for this check."},"third_party_order_id":{"type":"string","description":"The fraud provider’s order identifier, when returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_raw_response":{"type":["object","string"],"description":"The fraud provider response, preserved as returned. Its fields depend on the provider."},"third_party_response_ms":{"type":["number","null"],"description":"The fraud provider response time in milliseconds, or null when unavailable.","examples":[0]}}}},"fraud_score":{"type":["number","null"],"description":"The fraud score, or null when no score was returned.","examples":[0]},"is_sentinel":{"type":"boolean","description":"Whether Sentinel performed the check."},"message":{"type":"string","description":"The fraud check result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"wallet_setup":{"type":"string","enum":["not_requested","ready","failed","unknown"],"description":"Wallet credential setup outcome when reported by the payment processor.","examples":["not_requested"]},"wallet_reusable":{"type":"boolean","description":"Whether a usable reusable wallet method was established for this result; future lifecycle/provider restrictions still apply."},"payment_method_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of the wallet payment method, when one was created. Use this ID for supported future payments.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/estimate":{"post":{"summary":"Estimate A Sale","description":"Estimate a sale’s total and return an itemized breakdown of products, shipping, tax, coupons and discounts. Supply products or the ID of an existing pending sale. No payment is processed.","operationId":"EstimateSale","x-api-permission-description":"Allows the estimation of a sale without processing payment.","x-api-permission":"sale:estimate","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EstimateSale.md","tags":["Sales"],"requestBody":{"content":{"application/json":{"schema":{"title":"Sale Estimate Request Object","description":"Provide the same request object as a normal sale, or the sale_id for a previously created pending sale.","properties":{"sale_id":{"description":"An optional RevCent sale ID if estimating a previously created pending sale. If provided, all other properties are optional.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"include_gateway":{"description":"Only provide if you wish to return a specific gateway to be used in a future sale request. Must include payment type of credit card and a next-gen payment profile ID. Default is false.","type":"boolean"},"payment_type":{"description":"If include_gateway is true, the payment type for the sale. Must be credit_card.","type":"string","enum":["credit_card"],"examples":["credit_card"]},"payment_profile":{"description":"If include_gateway is true, provide the payment profile ID for a next-gen profile. Only next-gen profiles are supported. A basic estimate does not require payment routing or process payment. Supply this profile when estimating credit-card charges that depend on a payment profile.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"The RevCent ID of an existing customer in your account and the API key’s live or test mode. Use customer_id to select the customer; internal_customer_id is for reference only.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"credit_card":{"additionalProperties":false,"description":"Raw card input. Mutually exclusive with fresh wallet data or a saved-wallet reference.","properties":{"card_number":{"description":"The full credit card number.","type":"string","writeOnly":true,"examples":["4111111111111111"]},"exp_month":{"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","minimum":1,"maximum":12,"examples":[1]},"exp_year":{"type":"integer","anyOf":[{"minimum":0,"maximum":99},{"minimum":1000,"maximum":9999}],"description":"Two-digit or four-digit expiration year.","examples":[0]},"card_code":{"description":"The credit card code as a string. Depending on the card type this can be different lengths.","type":"string","writeOnly":true,"examples":["123"]}},"type":"object","required":["card_number","exp_month","exp_year"]},"customer":{"description":"The customer object.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The customer first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The customer last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid email address. Surrounding whitespace is trimmed; empty or whitespace-only values allow fallback to the next address. The API rejects invalid nonblank addresses.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"bill_to":{"description":"To use as the billing information. If not present the customer object will be used.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid email address. Surrounding whitespace is trimmed; empty or whitespace-only values allow fallback to the next address. The API rejects invalid nonblank addresses.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"ship_to":{"description":"To use as the ship to information. If not present the customer object, or bill_to object will be used if either present in respective order.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name. Must contain at least one non-whitespace character.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name. Must contain at least one non-whitespace character.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","description":"Optional valid email address. Surrounding whitespace is trimmed; empty or whitespace-only values allow fallback to the next address. The API rejects invalid nonblank addresses.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name"]},"product":{"description":"The products to include in the sale request.","items":{"description":"An individual product","additionalProperties":false,"properties":{"id":{"type":"string","minLength":1,"description":"Exact product name, internal_id, RevCent product ID, SKU or additional_id.value. The product must be enabled and belong to your account. If a third-party shop is selected, or your API key has a shop association, matching products from that shop take priority, followed by other matching products in your account.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The quantity being purchased. Default is 1.","type":"integer","minimum":1,"examples":[1]},"price":{"description":"The price you wish to charge, if different from the product default price in RevCent.","type":"number","format":"float","minimum":0}},"type":"object","required":["id"]},"type":"array","minItems":1},"shipping":{"description":"Shipping to include in the sale request. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the provider and method IDs.","items":{"description":"An individual shipping entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific shipping entry. A shipping amount can be 0.","type":"number","format":"float","minimum":0},"provider":{"description":"The shipping provider. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct provider id.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method. This will be included when creating a shipment at a fulfillment center. Please refer to our <a href=\"https://kb.revcent.com/en/revenue/shipping#provider-method-table\" target=\"_blank\">Provider Method Table</a> at our knowledge base for the correct method id corresponding to the provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"An optional name for the shipping entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the shipping entry.","type":"string","examples":["Example description"]}},"type":"object","required":["amount"]},"type":"array"},"tax":{"description":"Tax to charge in the sale request. Can create multiple tax entries to itemize separate taxes.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"amount":{"description":"The amount to charge for the specific tax entry.","type":"number","format":"float","minimum":0},"name":{"description":"An optional name for the tax entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the tax entry.","type":"string","examples":["Example description"]}},"type":"object","required":["amount"]},"type":"array"},"coupon":{"description":"Include one or more coupon codes which will be used to automatically apply discounts to a sale.","items":{"description":"An individual tax entry.","additionalProperties":false,"properties":{"coupon_code":{"description":"A coupon code which exists in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","required":["coupon_code"]},"type":"array"},"discount":{"description":"Include one or more discount entries which will be used to automatically apply discounts to a sale. Can be a fixed amount or a percentage of the sales total.","items":{"description":"An individual discount entry.","additionalProperties":false,"properties":{"discount_value":{"description":"The coupon discount value relative to the discount_type.","type":"number","format":"float","minimum":0},"discount_type":{"description":"The coupon discount type, either percent or amount. RevCent will calculate the discount if percent.","type":"string","enum":["percent","amount"],"examples":["percent"]},"name":{"description":"An optional name for the discount entry.","type":"string","examples":["Example"]},"description":{"description":"An optional description for the discount entry.","type":"string","examples":["Example description"]},"apply_to_product":{"description":"Whether to apply the discount to products purchased. Default is true. Set to false if discount should only apply to shipping.","type":"boolean"},"apply_to_shipping":{"description":"Whether to apply the discount to shipping. Default is true. Set to false if discount should only apply to products purchased.","type":"boolean"}},"type":"object","required":["discount_value","discount_type"]},"type":"array"},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]},"third_party_shop":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of an available shop owned by your account. An API key without a shop association may select this shop. A shop-associated API key may select only its own shop. Omit to use the API key’s shop association, if any. Existing pending sales retain their stored shop.","example":"KnBKryj7jOFPLW1pqkVM"}},"type":"object","additionalProperties":false,"required":[],"allOf":[{"anyOf":[{"required":["product"]},{"required":["sale_id"]}]},{"if":{"required":["include_gateway"],"properties":{"include_gateway":{"const":true}}},"then":{"required":["payment_type","payment_profile"],"properties":{"payment_type":{"const":"credit_card","examples":["credit_card"]}},"anyOf":[{"required":["customer_id"]},{"required":["credit_card"]}]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","examples":[0]},"coupons":{"description":"A breakdown of both valid and invalid coupons if one or more coupon codes are submitted in the request.","type":"object","additionalProperties":false,"properties":{"valid":{"description":"An array of valid coupons if one or more coupon codes are submitted in the request.","type":"array","items":{"description":"","type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"coupon_code":{"description":"The coupon code submitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"coupon_id":{"description":"The ID of the coupon you created in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"coupon_profile_id":{"description":"The ID of the related coupon profile you created in RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount":{"description":"Potential discounts as a result of the coupon.","type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_amount":{"description":"The discount amount.","type":"number","format":"float"},"discount_percent":{"description":"The discount percentage (discount_multiplier * 100) rounded to max two decimal places.","type":"number","format":"float"},"discount_multiplier":{"description":"The discount multiplier, i.e. the mathematical number to apply to the total amount.","type":"number","format":"float"},"discount_value":{"description":"The discount value relative to the discount type.","type":"number","format":"float"},"discount_type":{"description":"The discount type relative to the discount value.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"invalid":{"description":"n array of invalid coupons if one or more coupon codes are submitted in the request.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"coupon_code":{"description":"The coupon code submitted.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"errors":{"description":"An array of error messages as to why the coupon code is invalid.","type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}}},"discounts":{"description":"An array of individual discount items, which will be created if the sale is successfully processed.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_amount":{"description":"The discount amount.","type":"number","format":"float"},"discount_percent":{"description":"The discount percentage (discount_multiplier * 100) rounded to max two decimal places.","type":"number","format":"float"},"discount_multiplier":{"description":"The discount multiplier, i.e. the mathematical number to apply to the total amount.","type":"number","format":"float"},"discount_type":{"description":"The discount type relative to the discount value.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_value":{"description":"The discount value relative to the discount type.","type":"number","format":"float"},"is_coupon":{"description":"Whether the discount is a result of a coupon code or a static discount submitted.","type":"boolean"},"coupon_id":{"description":"If the discount is the result of a coupon, the coupon ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"coupon_uuid":{"description":"The unique ID of the coupon in the coupons array.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"products":{"description":"An array of product entries that the discount is being applied to if applicable.","type":"array","items":{"description":"","type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_amount":{"description":"The discount amount.","type":"number","format":"float"},"discount_multiplier":{"description":"The discount multiplier, i.e. the mathematical number to apply to the total amount.","type":"number","format":"float"},"discount_percent":{"description":"The discount percentage (discount_multiplier * 100) rounded to max two decimal places.","type":"number","format":"float"},"total_amount_with_discount":{"description":"The total amount the customer will pay for the specific product after the discount has been applied.","type":"number","format":"float"}}}},"shipping":{"description":"An array of shipping entries that the discount is being applied to if applicable.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"discount_amount":{"description":"The discount amount.","type":"number","format":"float"},"discount_multiplier":{"description":"The discount multiplier, i.e. the mathematical number to apply to the total amount.","type":"number","format":"float"},"discount_percent":{"description":"The discount percentage (discount_multiplier * 100) rounded to max two decimal places.","type":"number","format":"float"},"total_amount_with_discount":{"description":"The total amount the customer will pay for shipping after discounts have been applied.","type":"number","format":"float"}}}}}}},"products":{"description":"An array of individual product items, which will be created if the sale is successfully processed.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The products' name.","type":"string","examples":["Example"]},"description":{"description":"The products' description.","type":"string","examples":["Example description"]},"quantity":{"description":"The product quantity.","type":"integer","examples":[0]},"price":{"description":"The product price.","type":"number","format":"float"},"total_amount":{"description":"The total amount before any discounts are applied.","type":"number","format":"float"},"is_trial":{"description":"Whether the product will create a trial when sold.","type":"boolean"},"is_trial_ship_now":{"description":"If the product is a trial product, whether the product will ship immediately upon sale completion.","type":"boolean"},"is_free_product":{"description":"Whether the product is a free product.","type":"boolean"},"discount_uuid":{"type":"array","items":{"description":"An array of UUID's linking the product to associated discounts.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"discount_amount":{"description":"The discount amount.","type":"number","format":"float"},"discount_multiplier":{"description":"The discount multiplier, i.e. the mathematical number to apply to the total amount.","type":"number","format":"float"},"discount_percent":{"description":"The discount percentage (discount_multiplier * 100) rounded to max two decimal places.","type":"number","format":"float"},"total_amount_with_discount":{"description":"The total product amount after discounts are applied.","type":"number","format":"float"},"max_quantity_allowed":{"description":"The maximum quantity of the product the customer is able to purchase based on product settings.","type":"integer","examples":[0]}}}},"shipping":{"description":"","type":"array","items":{"description":"","type":"object","additionalProperties":false,"properties":{"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"description":"The individual shipping amount.","type":"number","format":"float"},"products":{"description":"An array of products which will be associated with the specific shipping item.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"uuid":{"description":"A unique ID for the item. This is useful for identifying and matching this particular item with other related items in the response and vice versa.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"quantity":{"description":"The product quantity.","type":"integer","examples":[0]}}}},"provider":{"description":"The shipping provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"total_amount_with_discount":{"description":"The total shipping amount after any discounts are applied.","type":"number","format":"float"}}}},"tax":{"description":"An array of individual tax items, which will be created if the sale is successfully processed.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"description":"The calculated tax rate.","type":"number","format":"float"},"amount":{"description":"The total tax amount.","type":"number","format":"float"}}}},"totals":{"description":"The totals object, containing the sum of all related products, shipping, discounts and tax. Ultimate amounts are based on any delayed trial amounts, which the customer WILL EVENTUALLY pay. The breakdown is intended for display purposes, to show the customer what they will eventually pay when all trials have ended. The immediate amounts are the amounts the customer WILL PAY at the time of sale.","type":"object","additionalProperties":false,"properties":{"amount_total":{"description":"The ultimate amount the customer WILL EVENTUALLY pay for all items, including any discounts applied, after any trials have expired. This should only be used for display purposes, in order to show the customer what they will end up paying when all trials have ended. Do not use this value as the final charge amount at time of sale.","type":"number","format":"float"},"amount_bill_now":{"description":"The immediate amount the customer WILL PAY upon initial sale purchase. This is the amount the customer will be charged at the time of sale.","type":"number","format":"float"},"products":{"description":"The breakdown of ultimate and immediate amounts for all products the customer will pay. Read each property description to understand the difference between the values.","type":"object","additionalProperties":false,"properties":{"amount_total":{"description":"The ultimate amount the customer WILL EVENTUALLY pay for products when any trials expire. This should only be used for display purposes, in order to show the customer what they will end up paying when all trials have ended. Do not use this value as the final charge amount for products at time of sale.","type":"number","format":"float"},"amount_bill_now_with_discount":{"description":"The immediate amount the customer WILL PAY for products AFTER any applicable discounts are applied. This is the amount the customer will be charged for products at the time of sale. This should always be used as the final charge amount for all products including for display so the customer knows exactly what they will pay at time of sale for products, if displaying products amount.","type":"number","format":"float"},"amount_bill_now":{"description":"The immediate amount the customer WOULD HAVE paid for products prior to any applicable discounts being applied. This should only be used for display, showing what the customer would have paid prior to discounts being applied. Do not use this amount as the final charge amount at time of sale.","type":"number","format":"float"}}},"shipping":{"description":"The breakdown of ultimate and immediate amounts for all shipping the customer will pay.","type":"object","additionalProperties":false,"properties":{"amount_total":{"description":"The ultimate amount the customer WILL EVENTUALLY pay for shipping. This should only be used for display purposes, in order to show the customer what they will end up paying when all trials have ended. Do not use this value as the final charge amount for shipping at time of sale.","type":"number","format":"float"},"amount_bill_now_with_discount":{"description":"The immediate amount the customer WILL PAY for shipping after any applicable discounts are applied.  This is the amount the customer will be charged for shipping at the time of sale. This should always be used as the final charge amount for shipping including for display so the customer knows exactly what they will pay at time of sale for shipping, if displaying shipping amount during checkout.","type":"number","format":"float"},"amount_bill_now":{"description":"The immediate amount the customer WOULD HAVE paid for shipping prior to any applicable discounts being applied. This should only be used for display, showing what the customer would have paid prior to discounts being applied. Do not use this amount as the final charge amount at time of sale.","type":"number","format":"float"}}},"discount":{"description":"The breakdown of the total discount amount.","type":"object","additionalProperties":false,"properties":{"amount_total":{"description":"The immediate discount amount being applied to the purchase at time of sale. Useful for displaying to the customer what deductions are being made.","type":"number","format":"float"}}},"tax":{"description":"The breakdown of ultimate and immediate amounts for all tax the customer will pay.","type":"object","additionalProperties":false,"properties":{"amount_total":{"description":"The ultimate amount the customer WILL EVENTUALLY pay for tax. This should only be used for display purposes, in order to show the customer what they will end up paying when all trials have ended. Do not use this value as the final charge amount for tax at time of sale.","type":"number","format":"float"},"amount_bill_now":{"description":"The immediate amount the customer WILL PAY for tax. This is the amount the customer will be charged for tax at the time of sale. This should always be used as the final charge amount for tax including for display so the customer knows exactly what they will pay at time of sale for tax.","type":"number","format":"float"}}}}},"iso_currency":{"description":"The three digit ISO 4217 currency code.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"gateway":{"type":"object","additionalProperties":false,"description":"The selected gateway when include_gateway is true and an eligible gateway is found.","properties":{"id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The selected gateway name.","examples":["Example"]},"metadata":{"description":"Metadata associated with the selected gateway."}}}}}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sales/search":{"get":{"summary":"Search Sales","description":"Find sales by sale ID, customer or shipping contact details, IP address or metadata values. Returns up to 10 matching summaries. Use a result ID with GetSale for fuller details when available.","operationId":"SearchSales","x-api-permission-description":"Allows the search of sales using a search term.","x-api-permission":"sale:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a sale when you do not know the sale ID and wish to retrieve the details of a specific sale. Once a sale has been found, use an individual search results' id property and the GetSale operation to retrieve the sale details.<br><br>Important: If using the SearchSales and GetSale method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the sale using a secondary non-provided value, such as the customer email in the GetSale response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchSales.md","tags":["Sales"],"parameters":[{"name":"search_term","description":"Required search term or phrase. Leading and trailing whitespace is removed; the remaining text must be nonblank. For repeated parameters, the last value is used. No other query parameters are accepted.","in":"query","required":true,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"Searchable information includes the sale ID; customer or shipping first and last names, first address line, email and phone; customer IP address; and metadata values. Customer matches may reflect details supplied for the sale, while returned customer details may reflect later updates. Not every searchable value is returned in the summary or highlights."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Matching sale summaries and API-call information. Available customer contact details may reflect updates made after the sale; shipping details belong to the sale.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful search retrieval, not payment success.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 sale summaries in descending relevance order. Results may be empty and are not an exhaustive list of matches. No pagination is available. Use each id with GetSale for fuller details when available.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Current customer first address line, when available. May be empty or differ from the details supplied for the sale.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Current customer second address line, when available. May be empty or differ from the details supplied for the sale.","examples":["West Wing"]},"amount":{"type":"number","description":"Original sale total, including products, shipping and tax before discounts, in the sale currency’s major units. Unlike GetSale/GetSales amount, this is not gross payments. Currency is not returned here; use id with GetSale for available currency and financial details. Omitted when unavailable.","examples":[0]},"city":{"type":"string","description":"Current customer city, when available. May be empty or differ from the details supplied for the sale.","examples":["Washington"]},"created_date_unix":{"description":"Unix timestamp in seconds when the sale was created.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the customer. Omitted when unavailable; other customer details may still be present.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The available current customer email address; omitted when unavailable or invalid. May differ from the email supplied for the sale.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"Current customer first name, when available. May be empty or differ from the details supplied for the sale.","examples":["George"]},"highlights":{"type":"array","description":"Optional matching context. Labels can describe customer or shipping matches and need not point to the corresponding response property. Highlights may be incomplete.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","ip_address","last_name","metadata","phone"],"description":"The public match label. first_name, last_name, address_line_1 and phone may represent customer or shipping matches; labels are not exact response-property pointers.","examples":["last_name"]},"values":{"type":"array","description":"Available matching text fragments for this label; may be empty.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"Optional relevance score for this highlighted passage, separate from the whole-result score and not limited to 0–1.","examples":[0]},"full_text":{"type":"string","description":"Available matching text with context, returned only for metadata highlights. It need not contain the complete metadata value or correspond to an entry in the returned, limited metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"ip_address":{"type":"string","description":"Customer IP address recorded for the sale, when available.","examples":["192.0.2.10"]},"item_type":{"type":"string","const":"sale","description":"The item type returned in the search result.","examples":["sale"]},"last_name":{"type":"string","description":"Current customer last name, when available. May be empty or differ from the details supplied for the sale.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 available metadata name/value pairs, preserving text, order and duplicates. May be empty or omitted and need not include every metadata value that matched.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"Current customer phone, when available. May be empty or differ from the details supplied for the sale.","examples":["1234567890"]},"score":{"type":"number","description":"Relevance score for the whole result; higher values indicate closer matches. Distinct from individual highlight scores and not limited to 0–1. May be omitted when unavailable.","examples":[7.68]},"ship_to_address_line_1":{"type":"string","description":"Shipping first address line for the sale, when available. May be empty.","examples":["1600 Pennsylvania Ave"]},"ship_to_address_line_2":{"type":"string","description":"Shipping second address line for the sale, when available. May be empty.","examples":["West Wing"]},"ship_to_city":{"type":"string","description":"Shipping city for the sale, when available. May be empty.","examples":["Washington"]},"ship_to_first_name":{"type":"string","description":"Shipping first name for the sale, when available. May be empty.","examples":["George"]},"ship_to_last_name":{"type":"string","description":"Shipping last name for the sale, when available. May be empty.","examples":["Washington"]},"ship_to_state":{"type":"string","description":"Shipping state for the sale, when available. May be empty.","examples":["DC"]},"ship_to_zip":{"type":"string","description":"Shipping ZIP or postal code for the sale, when available. May be empty.","examples":["20500"]},"state":{"type":"string","description":"Current customer state, when available. May be empty or differ from the details supplied for the sale.","examples":["DC"]},"url":{"type":"string","format":"uri","description":"The RevCent sale-details URL identifying this result's id.","examples":["https://revcent.com/user/sale-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Current customer ZIP or postal code, when available. May be empty or differ from the details supplied for the sale.","examples":["20500"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/salvage_transactions":{"get":{"summary":"Get Salvage Transactions","description":"Retrieve a page of salvage transactions with available recovery amounts, status and payment summaries, ordered by creation time from newest to oldest. Use GetSalvageTransaction for individual details.","operationId":"GetSalvageTransactions","x-api-permission-description":"Allows the retrieval of salvage transactions.","x-api-permission":"salvage_transaction:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, page and limit are required. Without customer_id, the date range must not exceed 90 elapsed days. With customer_id, dates must still be valid and ordered but do not restrict results, and the 90-day limit does not apply. Only pages 1–20 are accessible; page 0 is treated as page 1.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSalvageTransactions.md","tags":["Salvage Transactions"],"parameters":[{"description":"Inclusive creation-date start as a Unix timestamp in seconds. Without customer_id, date_end minus date_start must not exceed 90 elapsed days. With customer_id, this remains required and validated but does not restrict results.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive creation-date end as a Unix timestamp in seconds. Must be at or after date_start. With customer_id, this remains required and validated but does not restrict results; the 90-day limit does not apply.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of results per page, from 1 to 25. No default is applied.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number. Use 1–20; 0 is treated as 1. total_pages may exceed the accessible 20-page range.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by up to 50 distinct campaign IDs. Values within this filter are alternatives; other filter families also apply. When omitted, campaigns configured for exclusion from list tables are excluded.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct payment profile IDs. Values within this filter are alternatives; other filter families also apply.","name":"payment_profile_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"style":"form","explode":true},{"name":"method_filter","in":"query","description":"Filter by the originating recovery scenario: sale_partial, trial or subscription_renewal. Multiple values are alternatives.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["sale_partial","trial","subscription_renewal"],"examples":["sale_partial","trial","subscription_renewal"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by whether recovery succeeded: salvaged or not_salvaged. Multiple values are alternatives. These values differ from the returned status display text.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["salvaged","not_salvaged"],"examples":["salvaged","not_salvaged"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Names are 1–100 characters and values are 1–255 characters; text is matched without trimming. Values for the same name are alternatives; different names must all match. Use METADATA_NAME_EXISTS as the value to match the name regardless of its value. Supports indexed bracket parameters or repeated metadata_filter parameters containing JSON objects.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer. Filters results to that customer and bypasses creation-date filtering and the ordinary 90-day span limit. Dates remain required and must be valid and ordered.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Salvage transaction summaries and pagination information. Monetary values use major units of iso_currency with up to two decimal places. Related histories are bounded selections and may be incomplete.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval, not successful recovery or payment.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of salvage transactions returned in results. May be smaller than limit when summaries are unavailable.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Current page number, from 1 to 20. A requested page of 0 is returned as 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the salvage transaction. Use GetSalvageTransaction for details.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"amount_original_total":{"description":"The original amount intended to be charged, in major currency units.","type":"number","format":"float","examples":[124.29]},"amount_charged":{"description":"The amount charged by the original transaction, in major currency units.","type":"number","format":"float","examples":[111.86]},"amount_to_salvage":{"description":"The current outstanding amount to recover, in major currency units. It need not equal the difference between the two original amounts.","type":"number","format":"float","examples":[12.43]},"num_retries":{"description":"The number of available retry records within the first 50 retry references. This is not a complete-history total and can differ from the number of distinct valid IDs in transactions.","type":"integer","examples":[0]},"salvaged":{"description":"Whether the amount has been successfully recovered. An already salvaged transaction cannot be processed again.","type":"boolean","examples":[false]},"success_transaction_id":{"type":"string","description":"The available 20 character RevCent ID of the transaction associated with successful salvage.","minLength":20,"maxLength":20,"examples":["6RoOqVVb6RsalYKWoyWy"]},"success_transaction_date":{"description":"The associated success transaction's creation time in ISO 8601 UTC, when available with success_transaction_id.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID, returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer details; omitted when an identifiable summary is unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country, normally an ISO 3166-1 alpha-3 country code. Historical text may be returned unchanged.","examples":["USA"]},"email":{"type":"string","description":"Available customer email text; historical values are preserved.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"is_subscription_renewal":{"type":"boolean","description":"Whether the salvage transaction is associated with a subscription renewal.","examples":[true]},"is_trial_expiration":{"type":"boolean","description":"Whether the salvage transaction is associated with a trial expiration.","examples":[false]},"is_replacement":{"type":"boolean","description":"Whether the salvage transaction replaced another salvage transaction.","examples":[false]},"salvage_transaction_replacement":{"type":"string","description":"20 character RevCent ID of the earlier salvage transaction replaced by this one, when available.","minLength":20,"maxLength":20,"examples":["8RB9LPnggRfQaQXOBgqJ"]},"has_replacement":{"type":"boolean","description":"Whether the salvage transaction was replaced by another salvage transaction.","examples":[false]},"salvage_transaction_replaced_by":{"type":"string","description":"20 character RevCent ID of the salvage transaction that replaced this one, when available.","minLength":20,"maxLength":20,"examples":["YZ56PBkdbMIvKEXBjMg0"]},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Omitted when unavailable or malformed; no currency should be assumed when absent.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"payment_profile":{"description":"The payment profile information if associated with a payment profile attempt.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the payment profile.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"The payment profile name.","type":"string","examples":["My Payment Profile"]}},"type":"object"},"request_origin":{"description":"The available original transaction that led to this salvage transaction.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the origin transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"request_type":{"type":"string","description":"The request type associated with origin transaction.","examples":["subscription"]},"request_method":{"type":"string","description":"The request method associated with origin transaction.","examples":["renew"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"},"trial_id":{"description":"20 character RevCent ID of the trial associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_id":{"description":"20 character RevCent ID of the subscription associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_renewal_id":{"description":"20 character RevCent ID of the subscription renewal associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"gateway_id":{"type":"string","description":"The available gateway's 20 character RevCent ID, returned together with gateway_name.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_name":{"description":"The available gateway name, returned together with gateway_id.","type":"string","examples":["First Bank NMI"]},"latest_transaction":{"description":"The newest dated retry within the bounded retry selection, or the original transaction when no dated retry is available. An unavailable summary is omitted; this is not a guarantee of global recency.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"gateway_result_phrase":{"description":"The result phrase returned by the gateway.","type":"string","examples":["Declined"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"},"user_gateway":{"additionalProperties":false,"description":"The gateway used for the latest transaction.","properties":{"id":{"description":"20 character RevCent ID of the gateway used for this transaction.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"Name of the gateway used for this transaction.","type":"string","examples":["Example"]}},"type":"object"}},"type":"object"},"latest_retry_transaction":{"description":"The newest dated retry within the bounded selection of up to 50 retry references, when an available summary can be returned. It is not necessarily the newest retry in the full history.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the retry transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"gateway_result_phrase":{"description":"The result phrase returned by the gateway.","type":"string","examples":["Declined"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"}},"type":"object"},"sale_initial":{"type":"boolean","description":"Whether the transaction is a part of an initial sale.","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be incomplete. Use GetSale for details.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be incomplete. Use GetProductSale for details.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be incomplete. Use GetShipment for details.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the related tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be incomplete. Use GetTax for details.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related discount exists.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs; the selection may be incomplete. Use GetTrial for details.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs; the selection may be incomplete. Use GetSubscription for details.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs; the selection may be incomplete. Use GetSubscriptionRenewal for details.","maxItems":50},"transactions":{"items":{"description":"A related transactions 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 distinct valid retry transaction IDs from the bounded retry selection. May contain fewer IDs than num_retries; this is not the full transaction history. Use GetTransaction for details.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be incomplete. Use GetAIThread for details.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be incomplete. Use GetAIAssistant for details.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related PayPal transaction exists.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related offline payment exists.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the related check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related check exists.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be incomplete. Use GetPendingRefund for details.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs; the selection may be incomplete. Use GetChargeback for details.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be incomplete. Use GetFraudDetection for details.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be incomplete. Use GetAPICall for details.","maxItems":50},"status":{"description":"The current salvage status text, which may contain historical values. It is distinct from status_filter values and customer.status.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether additional salvage processing is enabled.","type":"boolean"},"sale_amount_total":{"description":"The associated sale total, in major currency units.","format":"float","type":"number"},"payment_profile_partial":{"description":"Whether the payment profile matched only part of the amount to salvage.","type":"boolean"},"paypal_disputes":{"items":{"type":"string","description":"20 character RevCent ID of the related PayPal dispute.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related PayPal dispute exists.","maxItems":50},"fraud_detection_requests":{"items":{"type":"string","description":"20 character RevCent ID of the related fraud detection request.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related fraud detection request IDs; the selection may be incomplete.","maxItems":50},"smtp_messages":{"items":{"type":"string","description":"20 character RevCent ID of the related SMTP message.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related SMTP message IDs; the selection may be incomplete. Use GetSMTPMessage for details.","maxItems":50},"ai_voice_agents":{"items":{"type":"string","description":"20 character RevCent ID of the related AI Voice Agent.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related AI Voice Agent IDs; the selection may be incomplete. Use GetAIVoiceAgent for details.","maxItems":50},"ai_voice_calls":{"items":{"type":"string","description":"20 character RevCent ID of the related AI voice call.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related AI voice call IDs; the selection may be incomplete. Use GetAIVoiceCall for details.","maxItems":50}},"description":"A salvage transaction with available customer, payment and retry summaries. Monetary values use major units of iso_currency and the existing two-decimal rounding; unavailable or nonfinite amounts are omitted. Bounded relationships do not establish complete histories."},"type":"array","maxItems":25,"description":"Up to 25 available salvage transaction summaries in creation-time descending order. Does not include detail-only notes."},"total_count":{"description":"Total matching records for the applied filters before unavailable summaries are omitted. With customer_id, creation dates do not restrict this count.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Number of pages calculated from total_count and limit. May exceed 20, although only the first 20 pages can be requested.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/salvage_transactions/{salvage_transaction_id}":{"get":{"summary":"Get A Salvage Transaction","description":"Retrieve a salvage transaction with its available recovery amounts, status, payment summaries and notes. Related histories are bounded selections and may be incomplete. No query parameters are accepted.","operationId":"GetSalvageTransaction","x-api-permission-description":"Allows the retrieval of salvage transactions.","x-api-permission":"salvage_transaction:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSalvageTransaction.md","tags":["Salvage Transactions"],"parameters":[{"in":"path","name":"salvage_transaction_id","description":"20 character RevCent ID of the salvage transaction to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Salvage transaction details and API-call information. Monetary values use major units of iso_currency with up to two decimal places. Root code indicates retrieval success; payment outcomes are reported on transaction summaries.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code. A value of 1 indicates successful retrieval, not successful recovery or payment.","enum":[1],"type":"integer","examples":[1]},"created_date_unix":{"description":"Creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"amount_original_total":{"description":"The original amount intended to be charged, in major currency units.","type":"number","format":"float","examples":[124.29]},"amount_charged":{"description":"The amount charged by the original transaction, in major currency units.","type":"number","format":"float","examples":[111.86]},"amount_to_salvage":{"description":"The current outstanding amount to recover, in major currency units. It need not equal the difference between the two original amounts.","type":"number","format":"float","examples":[12.43]},"num_retries":{"description":"The number of available retry records within the first 50 retry references. This is not a complete-history total and can differ from the number of distinct valid IDs in transactions.","type":"integer","examples":[0]},"salvaged":{"description":"Whether the amount has been successfully recovered. An already salvaged transaction cannot be processed again.","type":"boolean","examples":[false]},"success_transaction_id":{"type":"string","description":"The available 20 character RevCent ID of the transaction associated with successful salvage.","minLength":20,"maxLength":20,"examples":["6RoOqVVb6RsalYKWoyWy"]},"success_transaction_date":{"description":"The associated success transaction's creation time in ISO 8601 UTC, when available with success_transaction_id.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"campaign_id":{"description":"The available campaign's 20 character RevCent ID, returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer details; omitted when an identifiable summary is unavailable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country, normally an ISO 3166-1 alpha-3 country code. Historical text may be returned unchanged.","examples":["USA"]},"email":{"type":"string","description":"Available customer email text; historical values are preserved.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"Your own reference for the customer, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"is_subscription_renewal":{"type":"boolean","description":"Whether the salvage transaction is associated with a subscription renewal.","examples":[true]},"is_trial_expiration":{"type":"boolean","description":"Whether the salvage transaction is associated with a trial expiration.","examples":[false]},"is_replacement":{"type":"boolean","description":"Whether the salvage transaction replaced another salvage transaction.","examples":[false]},"salvage_transaction_replacement":{"type":"string","description":"20 character RevCent ID of the earlier salvage transaction replaced by this one, when available.","minLength":20,"maxLength":20,"examples":["8RB9LPnggRfQaQXOBgqJ"]},"has_replacement":{"type":"boolean","description":"Whether the salvage transaction was replaced by another salvage transaction.","examples":[false]},"salvage_transaction_replaced_by":{"type":"string","description":"20 character RevCent ID of the salvage transaction that replaced this one, when available.","minLength":20,"maxLength":20,"examples":["YZ56PBkdbMIvKEXBjMg0"]},"iso_currency":{"description":"The three-letter ISO 4217 currency code, preserving its case. Omitted when unavailable or malformed; no currency should be assumed when absent.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"payment_profile":{"description":"The payment profile information if associated with a payment profile attempt.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the payment profile.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"The payment profile name.","type":"string","examples":["My Payment Profile"]}},"type":"object"},"request_origin":{"description":"The available original transaction that led to this salvage transaction.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the origin transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"request_type":{"type":"string","description":"The request type associated with origin transaction.","examples":["subscription"]},"request_method":{"type":"string","description":"The request method associated with origin transaction.","examples":["renew"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"},"trial_id":{"description":"20 character RevCent ID of the trial associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_id":{"description":"20 character RevCent ID of the subscription associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_renewal_id":{"description":"20 character RevCent ID of the subscription renewal associated with the origin transaction, when available.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"gateway_id":{"type":"string","description":"The available gateway's 20 character RevCent ID, returned together with gateway_name.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_name":{"description":"The available gateway name, returned together with gateway_id.","type":"string","examples":["First Bank NMI"]},"latest_transaction":{"description":"The newest dated retry within the bounded retry selection, or the original transaction when no dated retry is available. An unavailable summary is omitted; this is not a guarantee of global recency.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"gateway_result_phrase":{"description":"The result phrase returned by the gateway.","type":"string","examples":["Declined"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"},"user_gateway":{"additionalProperties":false,"description":"The gateway used for the latest transaction.","properties":{"id":{"description":"20 character RevCent ID of the gateway used for this transaction.","maxLength":20,"minLength":20,"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"Name of the gateway used for this transaction.","type":"string","examples":["Example"]}},"type":"object"}},"type":"object"},"latest_retry_transaction":{"description":"The newest dated retry within the bounded selection of up to 50 retry references, when an available summary can be returned. It is not necessarily the newest retry in the full history.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the retry transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_at":{"description":"The transaction's optional creation time in ISO 8601 UTC.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"code":{"description":"The RevCent payment result code, of which can be either 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected","type":"integer","examples":[1],"enum":[0,1,2,3,4,5]},"gateway_result_phrase":{"description":"The result phrase returned by the gateway.","type":"string","examples":["Declined"]},"payment_method":{"additionalProperties":false,"description":"How the payment-attempt transaction was funded and processed.","properties":{"category":{"description":"The broad payment-method category.","enum":["card","digital_wallet"],"type":"string","examples":["card"]},"method":{"description":"The specific payment method.","enum":["card","apple_pay","google_pay"],"type":"string","examples":["card"]},"rail":{"const":"card","description":"The underlying financial processing rail.","type":"string","examples":["card"]},"digital_wallet":{"additionalProperties":false,"description":"Display-safe information supplied for a digital-wallet payment.","properties":{"card_network":{"description":"Card network reported for the wallet payment.","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"type":"string","examples":["visa"]},"last_4":{"description":"The display-only last four digits supplied by the wallet.","type":"string","examples":["1111"]},"funding_source":{"description":"Funding source reported for the wallet payment.","enum":["credit","debit","prepaid","store","unknown"],"type":"string","examples":["credit"]}},"type":"object"}},"type":"object"}},"type":"object"},"sale_initial":{"type":"boolean","description":"Whether the transaction is a part of an initial sale.","examples":[true]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"Last update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs; the selection may be incomplete. Use GetSale for details.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs; the selection may be incomplete. Use GetProductSale for details.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs; the selection may be incomplete. Use GetShipment for details.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the related tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs; the selection may be incomplete. Use GetTax for details.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related discount exists.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs; the selection may be incomplete. Use GetTrial for details.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs; the selection may be incomplete. Use GetSubscription for details.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs; the selection may be incomplete. Use GetSubscriptionRenewal for details.","maxItems":50},"transactions":{"items":{"description":"A related transactions 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 distinct valid retry transaction IDs from the bounded retry selection. May contain fewer IDs than num_retries; this is not the full transaction history. Use GetTransaction for details.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs; the selection may be incomplete. Use GetAIThread for details.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI Assistant IDs; the selection may be incomplete. Use GetAIAssistant for details.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related PayPal transaction exists.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related offline payment exists.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the related check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related check exists.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs; the selection may be incomplete. Use GetPendingRefund for details.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs; the selection may be incomplete. Use GetChargeback for details.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs; the selection may be incomplete. Use GetFraudDetection for details.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs; the selection may be incomplete. Use GetAPICall for details.","maxItems":50},"status":{"description":"The current salvage status text, which may contain historical values. It is distinct from status_filter values and customer.status.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether additional salvage processing is enabled.","type":"boolean"},"sale_amount_total":{"description":"The associated sale total, in major currency units.","format":"float","type":"number"},"payment_profile_partial":{"description":"Whether the payment profile matched only part of the amount to salvage.","type":"boolean"},"notes":{"description":"Up to 50 available notes associated with this salvage transaction. The selection may be incomplete and does not promise newest-first order.","items":{"additionalProperties":false,"properties":{"created_date_unix":{"description":"Note creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1893499200]},"updated_date_unix":{"description":"Note update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1893499200]},"id":{"type":"string","description":"20 character RevCent ID of the note.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"text":{"type":"string","description":"The full available nonempty note text, preserved without truncation. Omitted when unavailable or empty.","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"username":{"type":"string","description":"The username of the user who created the note.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"first_name":{"type":"string","description":"The first name of the user who created the note.","examples":["Alex"]},"last_name":{"type":"string","description":"The last name of the user who created the note.","examples":["River"]},"employee_id":{"type":"string","description":"20 character RevCent ID of the note author, when available. Other author details may still be present when this ID is unavailable.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_note_related_type":{"type":"string","description":"Type of resource associated with the note, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_note_related_id":{"type":"string","description":"20 character RevCent ID of the resource identified by customer_note_related_type, when available.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","maxItems":50},"paypal_disputes":{"items":{"type":"string","description":"20 character RevCent ID of the related PayPal dispute.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Currently returned as an empty array; it does not establish that no related PayPal dispute exists.","maxItems":50},"fraud_detection_requests":{"items":{"type":"string","description":"20 character RevCent ID of the related fraud detection request.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related fraud detection request IDs; the selection may be incomplete.","maxItems":50},"smtp_messages":{"items":{"type":"string","description":"20 character RevCent ID of the related SMTP message.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related SMTP message IDs; the selection may be incomplete. Use GetSMTPMessage for details.","maxItems":50},"ai_voice_agents":{"items":{"type":"string","description":"20 character RevCent ID of the related AI Voice Agent.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related AI Voice Agent IDs; the selection may be incomplete. Use GetAIVoiceAgent for details.","maxItems":50},"ai_voice_calls":{"items":{"type":"string","description":"20 character RevCent ID of the related AI voice call.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"type":"array","description":"Up to 50 available related AI voice call IDs; the selection may be incomplete. Use GetAIVoiceCall for details.","maxItems":50}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/salvage_transactions/{salvage_transaction_id}/process":{"post":{"summary":"Process A Salvage Transaction","description":"Process an existing salvage transaction using its ID. The salvage transaction identifies the customer; no customer_id is needed. A decline or provider error does not trigger another payment-method attempt.","operationId":"ProcessSalvageTransaction","x-api-permission-description":"Allows the processing of salvage transactions.","x-api-permission":"salvage_transaction:process","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ProcessSalvageTransaction.md","tags":["Salvage Transactions"],"parameters":[{"in":"path","name":"salvage_transaction_id","description":"The salvage transaction ID.","required":true,"schema":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"gateway_id":{"description":"Optional ID of an account-owned gateway for card processing. Omit to use the salvage transaction's original gateway. Saved wallets always use their originating gateway, regardless of gateway_id. No alternate gateway is attempted.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_method_id":{"description":"Optional ID of a saved card or reusable Apple Pay or Google Pay payment method. Legacy saved card IDs are accepted through this field. The method must belong to the authenticated account and the salvage transaction's customer, in the same live/test mode. An invalid explicit selection fails without substituting another method. Do not combine with payment. If neither payment_method_id nor payment is supplied, RevCent selects an eligible existing payment method for the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment":{"description":"Credit card information to use directly for this recovery attempt; no separate add-payment-method request is needed. Do not combine with payment_method_id. Direct wallet payloads are not supported here; select a saved reusable wallet through payment_method_id.","additionalProperties":false,"properties":{"credit_card":{"description":"The credit card you wish to use.","additionalProperties":false,"properties":{"card_number":{"description":"The full credit card number, digits only.","type":"string","examples":["4242424242424242"]},"exp_month":{"minimum":1,"maximum":12,"description":"The credit card expiration month as a one or two digit integer, i.e. MM.","type":"integer","examples":[12,1]},"exp_year":{"anyOf":[{"minimum":0,"maximum":99},{"minimum":1000}],"description":"Card expiration year as an integer: a two-digit year from 0 to 99, or a full year of at least 1000 (for example, 2030).","type":"integer","examples":[29,32]},"card_code":{"description":"The credit card code as a string, digits only. Depending on the card type this can be different lengths.","type":"string","examples":["999"]},"metadata":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"],"additionalProperties":false}},"notes":{"type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"set_as_default":{"type":"boolean"}},"type":"object","required":["card_number","exp_month","exp_year"]}},"type":"object","required":["credit_card"]},"bill_to":{"description":"Billing information to use when supplying a new credit card with separate billing details.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The bill to first name.","minLength":1,"examples":["Alex"]},"last_name":{"type":"string","description":"The bill to last name.","minLength":1,"examples":["River"]},"address_line_1":{"type":"string","description":"The bill to first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The bill to second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The bill to city.","examples":["Boston"]},"state":{"type":"string","description":"The bill to state.","examples":["MA"]},"zip":{"type":"string","description":"The bill to ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"company":{"type":"string","description":"The bill to company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The bill to email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The bill to phone.","examples":["+12025550123"]}},"type":"object","required":["first_name","last_name","email"]},"amount":{"type":"number","format":"double","minimum":0,"description":"Optional amount to process. A positive amount below the outstanding salvage amount processes a partial recovery. When approved, RevCent creates a replacement salvage transaction for the remaining balance. If omitted, zero, equal to, or greater than the outstanding balance, RevCent processes the full outstanding amount."},"metadata":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["name","value"],"additionalProperties":false}},"notes":{"type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","additionalProperties":false,"not":{"required":["payment_method_id","payment"]}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The approved salvage payment and related customer, gateway and transaction identifiers. A partial recovery also identifies the replacement salvage transaction and its remaining amount.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"salvage_transaction_id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","description":"Amount captured by this salvage payment.","examples":[0]},"campaign_id":{"type":"string","description":"The 20 character RevCent ID of the campaign. An empty string is returned when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_name":{"type":"string","description":"Associated campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"First address line. An empty string is returned when unavailable.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"Second address line. An empty string is returned when unavailable.","examples":["Suite 100"]},"city":{"type":"string","description":"City. An empty string is returned when unavailable.","examples":["Boston"]},"company":{"type":"string","description":"Company name. An empty string is returned when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"Customer country as a three-letter ISO 3166-1 alpha-3 code, or an empty string.","examples":["USA"]},"email":{"type":"string","description":"Email address. An empty string is returned when unavailable.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"First name. An empty string is returned when unavailable.","examples":["Alex"]},"id":{"type":"string","description":"The 20 character RevCent ID of the customer, or an empty string when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"internal_id":{"type":"string","description":"Merchant-supplied customer reference, or an empty string when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_name":{"type":"string","description":"Last name. An empty string is returned when unavailable.","examples":["River"]},"phone":{"type":"string","description":"Phone number. An empty string is returned when unavailable.","examples":["+12025550123"]},"state":{"type":"string","description":"State or province. An empty string is returned when unavailable.","examples":["MA"]},"zip":{"type":"string","description":"ZIP or postal code. An empty string is returned when unavailable.","examples":["02108"]},"customer_group":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The 20 character RevCent ID of the customer group.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The customer group name.","examples":["Example"]}}},"description":"The customer groups associated with the customer, or an empty array."},"metadata":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Your metadata name.","examples":["Example"]},"value":{"type":"string","description":"Your metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"maxItems":10,"description":"Up to ten customer metadata entries, or an empty array."}},"description":"Customer details for this recovery. Text values use empty strings when unavailable. customer_group and metadata are arrays and may be empty; metadata contains at most ten entries."},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway":{"type":"string","description":"Gateway name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_raw_response":{"description":"Original payment-provider response. Its structure depends on the gateway."},"gateway_transaction_id":{"type":["string","null"],"description":"Provider transaction identifier, or null if none was returned. Included on every successful recovery.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sale_id":{"type":["string","null"],"description":"The 20 character RevCent ID of the related sale, null when there is no related sale, or an empty string when its ID is unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_id":{"type":"string","description":"The 20 character RevCent ID of the related subscription. Included only when that relationship has an available ID; otherwise omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"subscription_renewal_id":{"type":"string","description":"The 20 character RevCent ID of the related subscription renewal. Included only when that relationship has an available ID; otherwise omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"trial_id":{"type":"string","description":"The 20 character RevCent ID of the related trial. Included only when that relationship has an available ID; otherwise omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"transaction_id":{"type":"string","description":"The 20 character RevCent ID of the payment transaction.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"replacement_salvage_transaction":{"type":"object","additionalProperties":false,"description":"Present only when an approved partial recovery leaves an unpaid remainder. Contains the new salvage transaction ID and outstanding amount. Omitted for full recovery.","properties":{"id":{"type":"string","description":"The 20 character RevCent ID of the replacement salvage transaction.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","description":"Outstanding amount to recover through the replacement.","examples":[0]}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"402":{"description":"Payment declined, held or unsuccessful, as indicated by the response code.","content":{"application/json":{"schema":{"type":"object","description":"An unsuccessful salvage payment attempt, with the related customer, gateway and available transaction details.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"The payment outcome: 2 for declined, 3 for an error, or 4 for held.","enum":[2,3,4],"examples":[2]},"message":{"type":"string","description":"A human-readable explanation of the unsuccessful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The payment outcome summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount":{"type":"number","description":"The attempted recovery amount.","examples":[0]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer":{"type":"object","description":"The customer associated with the salvage transaction.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The customer city.","examples":["Boston"]},"company":{"type":"string","description":"The customer company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"The customer email.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"The customer first name.","examples":["Alex"]},"id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"internal_id":{"type":"string","description":"Your reference for the customer, such as the customer ID in your own system.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_name":{"type":"string","description":"The customer last name.","examples":["River"]},"phone":{"type":"string","description":"The customer phone.","examples":["+12025550123"]},"state":{"type":"string","description":"The customer state.","examples":["MA"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["02108"]},"country":{"type":"string","description":"The customer country as a three-letter ISO 3166-1 alpha-3 code, or an empty string when unavailable.","examples":["USA"]},"customer_group":{"type":"array","description":"The customer groups associated with this customer.","items":{"type":"object","description":"A customer group.","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character customer group ID.","minLength":20,"maxLength":20,"examples":["2rRMqP5nojF6EgJqwQVL","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The customer group name.","examples":["Example"]}}}},"metadata":{"type":"array","description":"Customer metadata entries returned with the payment response.","items":{"type":"object","description":"A customer metadata entry.","additionalProperties":false,"properties":{"name":{"type":"string","description":"The metadata name.","examples":["Example"]},"value":{"type":"string","description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"failure_code":{"type":"string","description":"The failure category: M0002 for declined, M0003 for an error, or M0005 for held.","enum":["M0002","M0003","M0005"],"examples":["M0002"]},"gateway":{"type":"string","description":"The gateway name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"gateway_transaction_id":{"type":["string","null"],"description":"The gateway transaction reference, or null when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"reconciliation_required":{"type":"boolean","description":"Whether the payment outcome requires reconciliation before another attempt."},"sale_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the associated sale, or null when there is no associated sale.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"salvage_transaction_id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_renewal_id":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"transaction_id":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/salvage_transactions/{salvage_transaction_id}/disable":{"post":{"summary":"Disable A Salvage Transaction","description":"Permanently disable an existing salvage transaction. A disabled salvage transaction cannot be processed or re-enabled.","operationId":"DisableSalvageTransaction","x-api-permission-description":"Allows the permanent disabling of salvage transactions.","x-api-permission":"salvage_transaction:disable","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DisableSalvageTransaction.md","tags":["Salvage Transactions"],"parameters":[{"in":"path","name":"salvage_transaction_id","description":"The salvage transaction ID.","required":true,"schema":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","type":"object","additionalProperties":false,"properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"salvage_transaction_id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/secure_forms":{"post":{"summary":"Create A Secure Form","description":"Create a temporary secure form for collecting credentials. Direct the user to the returned form_url, then use the form ID in the relevant operation after the user completes it. The form and its saved data expire after one hour.","operationId":"CreateSecureForm","x-api-permission-description":"Allows the creation of a secure form.","x-api-permission":"secure_form:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateSecureForm.md","tags":["Secure Forms"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"form_source":{"type":"string","description":"The form source, indicating the source in which the form fields should be generated.","enum":["third_party_integration","third_party_shop","gateway","fulfillment_center","smtp_profile","paypal_account"],"examples":["third_party_integration"]},"form_source_id":{"type":"string","description":"The form source id which indicates the site ID of the form_source, only applicable to a form_source of third_party_integration, third_party_shop, gateway or fulfillment_center. Not applicable to form source of smtp_profile or paypal_account.<br><br>For example, if form_source is third_party_integration, then form_source_id would be the site_third_party_integration ID, indicating the secure form should be generated using the required fields for a specific site third party integration.<br><br> Form Source ID Map:<br><br><em>third_party_integration:</em> the site third party integration ID.<br><br><em>third_party_shop:</em> the site third party shop ID.<br><br><em>gateway:</em> the site gateway ID.<br><br><em>fulfillment_center:</em> the site fulfillment center ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["form_source"],"type":"object","allOf":[{"if":{"required":["form_source"],"properties":{"form_source":{"enum":["gateway","third_party_integration","third_party_shop","fulfillment_center"]}}},"then":{"required":["form_source_id"]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"secure_form_id":{"type":"string","description":"A 20 character secure form ID.","minLength":20,"maxLength":20,"examples":["bGrABggkn2C7joagWRPk"]},"completed":{"description":"Whether the user has submitted the completed secure form. A completed form cannot be modified and its ID can be used to provide the submitted credentials.","type":"boolean"},"expiration_date_unix":{"type":"integer","format":"unix-time","description":"The unix timestamp representing the secure form expiration. After this time, the secure form URL will no longer be valid and the user will not be able to fill out the form or access any information related to the secure form.","examples":[1893499200]},"form_source":{"type":"string","description":"The form source, indicating the source in which the form fields should be generated.","enum":["third_party_integration","third_party_shop","gateway","fulfillment_center","smtp_profile","paypal_account"],"examples":["third_party_integration"]},"form_source_id":{"description":"A 20 character RevCent ID identifying the selected gateway, fulfillment center, third-party integration or shop. Empty for SMTP profile and PayPal account forms, which use fixed fields.","anyOf":[{"type":"string","minLength":20,"maxLength":20},{"type":"string","const":""}]},"form_url":{"type":"string","description":"The secure form URL. This is the URL that the user should be directed to in order to fill out and complete the secure form, if not completed already. The user must be logged into RevCent in order to access the secure form.","format":"uri","examples":["https://example.com"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/secure_forms/{secure_form_id}":{"get":{"summary":"Get A Secure Form","description":"Retrieve a secure form’s completion status, source, URL and recorded expiration. Submitted credential values are not returned. No query parameters are accepted.","operationId":"GetSecureForm","x-api-permission-description":"Allows the retrieval of a secure form to view if a form is completed as well as the form_url if needed. Sensitive data submitted in a completed secure form will not be returned.","x-api-permission":"secure_form:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSecureForm.md","tags":["Secure Forms"],"parameters":[{"in":"path","name":"secure_form_id","description":"20 character RevCent ID of the secure form to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character secure form ID.","minLength":20,"maxLength":20,"examples":["bGrABggkn2C7joagWRPk"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Secure-form metadata and API-call information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful metadata retrieval; it does not establish credential validity, current form usability or completion of a downstream operation.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Unix timestamp in seconds when the secure form was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested secure form.","type":"string","minLength":20,"maxLength":20,"examples":["bGrABggkn2C7joagWRPk"]},"completed":{"description":"Whether the user submitted and completed the form, when available. Completed forms cannot be modified.","type":"boolean","examples":[false]},"form_source":{"type":"string","description":"The configuration category whose fields the secure form requests. Omitted when unavailable or unrecognized.","enum":["third_party_integration","third_party_shop","gateway","fulfillment_center","smtp_profile","paypal_account"],"examples":["third_party_integration","third_party_shop","gateway","fulfillment_center","smtp_profile","paypal_account"]},"form_source_id":{"type":"string","description":"An optional 20 character RevCent ID identifying the source configuration: the supported integration for third_party_integration, supported shop for third_party_shop, site gateway for gateway, or fulfillment center for fulfillment_center. Returned independently when available, including historical values for other sources.","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"form_url":{"type":"string","description":"URL for opening and completing the form. The user must be logged into RevCent. Check the recorded expiration before using the form.","format":"uri","examples":["https://revcent.com/user/secure-form/wOyd98VPX2ArHJy8gX2o"]},"expiration_date_unix":{"type":"integer","format":"unix-time","description":"Recorded form expiration as a Unix timestamp in seconds, when available. This GET may still return metadata for an expired form while it remains available; successful retrieval does not extend the form’s usability or guarantee continued availability.","examples":[1675367500]},"updated_date_unix":{"description":"Unix timestamp in seconds when the secure form was last updated.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sentinel":{"get":{"summary":"Get Sentinel Settings","description":"Retrieve the account’s Sentinel visitor-validation, third-party fraud-check and IP-based fraud-firewall settings. No query parameters are accepted.","operationId":"GetSentinelSettings","x-api-permission-description":"Allows the retrieval of Sentinel settings.","x-api-permission":"sentinel:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/GetSentinelSettings.md","tags":["Sentinel Anti-Fraud"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Sentinel configuration and API-call information. Returned settings describe the configuration, not the outcome of a particular payment attempt.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful configuration retrieval.","type":"integer","enum":[1],"examples":[1]},"enabled":{"type":"boolean","description":"The Sentinel enabled setting. Visitor validation, third-party fraud checks and the fraud firewall have separate enabled settings.","examples":[true]},"tracking_visitor_validator":{"type":"object","additionalProperties":false,"description":"Visitor-validation settings. DNS Tracking must be configured for domains using visitor validation. reject_non_existing specifies the setting for purchases with a missing visitor ID or unavailable visitor information.","properties":{"enabled":{"type":"boolean","description":"Whether visitor validation is configured as enabled.","examples":[true]},"reject_non_existing":{"type":"boolean","description":"Whether rejection is configured for purchases with a missing visitor ID or unavailable visitor information.","examples":[true]},"reject_datacenter":{"type":"boolean","description":"Whether rejection is configured for visitors identified as using a datacenter.","examples":[true]},"reject_proxy":{"type":"boolean","description":"Whether rejection is configured for visitors identified as using a proxy.","examples":[true]},"reject_vpn":{"type":"boolean","description":"Whether rejection is configured for visitors identified as using a VPN.","examples":[false]},"reject_country":{"type":"array","description":"Countries configured for visitor rejection, expressed as uppercase ISO 3166-1 alpha-3 codes. May be empty.","items":{"type":"string","description":"An uppercase three-letter ISO 3166-1 alpha-3 country code.","minLength":3,"maxLength":3,"examples":["RUS"]}}}},"fraud_firewall":{"type":"object","additionalProperties":false,"description":"The account's IP-based fraud-firewall settings.","properties":{"enabled":{"type":"boolean","description":"Whether the fraud firewall is configured as enabled.","examples":[true]},"ip_sale_limit":{"type":"object","additionalProperties":false,"description":"The configured sale-attempt limit for one IP address. max_time_value and max_time_unit together specify its time window.","properties":{"enabled":{"type":"boolean","description":"Whether the IP sale limit is configured as enabled.","examples":[true]},"max_count":{"type":"integer","description":"Configured sale-attempt threshold for one IP address within the time window. A returned zero or negative value does not establish an effective limit.","examples":[3]},"max_time_unit":{"type":"string","description":"Unit of the sale-limit time window, used together with max_time_value.","enum":["minutes","hours","days","weeks","months"],"examples":["minutes","hours","days","weeks","months"]},"max_time_value":{"type":"integer","description":"Size of the sale-limit time window in max_time_unit units. A returned zero or negative value does not establish an effective window.","examples":[30]},"add_fraud_alerts":{"type":"boolean","description":"Whether adding fraud alerts to sales associated with a reached IP sale limit is configured.","examples":[true]}}},"ip_fraud_detection":{"type":"object","additionalProperties":false,"description":"The setting for checking IP addresses associated with fraud detections.","properties":{"enabled":{"type":"boolean","description":"Whether the fraud-detection IP check is configured as enabled.","examples":[true]}}},"ip_chargeback":{"type":"object","additionalProperties":false,"description":"The setting for checking IP addresses associated with chargebacks.","properties":{"enabled":{"type":"boolean","description":"Whether the chargeback IP check is configured as enabled.","examples":[true]}}},"ip_whitelist":{"type":"object","additionalProperties":false,"description":"The configured IP allowlist.","properties":{"enabled":{"type":"boolean","description":"Whether the IP allowlist is configured as enabled.","examples":[false]},"ip_list":{"type":"array","description":"IP allowlist entries, intended for individual IPv4 or IPv6 addresses; IP ranges are not supported. May be empty. Entries retain their order and duplicates and may include historical text that is not a valid IP address.","items":{"type":"string","description":"An IP allowlist entry.","examples":["192.0.2.25"]}}}},"ip_blacklist":{"type":"object","additionalProperties":false,"description":"The configured IP blocklist.","properties":{"enabled":{"type":"boolean","description":"Whether the IP blocklist is configured as enabled.","examples":[false]},"ip_list":{"type":"array","description":"IP blocklist entries, intended for individual IPv4 or IPv6 addresses; IP ranges are not supported. May be empty. Entries retain their order and duplicates and may include historical text that is not a valid IP address.","items":{"type":"string","description":"An IP blocklist entry.","examples":["198.51.100.25"]}}}}}},"third_party_fraud_check":{"type":"object","additionalProperties":false,"description":"The configured third-party fraud-check setting and selected integration.","properties":{"enabled":{"type":"boolean","description":"Whether third-party fraud checks are configured as enabled. This does not confirm that the selected integration is currently eligible to perform checks."},"id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The selected integration's 20 character RevCent ID, or null when no selection is available. To select this integration when editing Sentinel settings, supply this value as third_party_fraud_check.third_party_integration_id. Disabled or archived integrations may still be identified; a returned ID does not confirm eligibility for new checks.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit Sentinel Settings","description":"Update the account’s Sentinel settings. Only supplied fields are updated.","operationId":"EditSentinelSettings","x-api-permission-description":"Allows the editing of Sentinel settings.","x-api-permission":"sentinel:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/EditSentinelSettings.md","tags":["Sentinel Anti-Fraud"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Whether Sentinel is enabled or not. If Sentinel is disabled, tracking visitor validator and fraud firewall settings are ignored."},"tracking_visitor_validator":{"type":"object","additionalProperties":false,"description":"RevCent tracks visitors and stores detailed information on each. Certain metrics can determine whether a visitor is in fact a fraudster, thus preventing the visitor from ever making a purchase. RevCent will analyze the visitor data associated with the payment attempt to identify potential fraud.<br><br>Important: If tracking visitor validator is enabled, you must have DNS Tracking set up for all of your domains. If DNS tracking is not set up and tracking visitor is enabled, all purchases without a visitor ID will be treated as fraud.","properties":{"enabled":{"type":"boolean","description":"Whether tracking visitor validator is enabled or not. If disabled, all tracking visitor validator settings are ignored."},"reject_non_existing":{"type":"boolean","description":"Whether to reject purchases from non existing visitors or not. If enabled, if a purchase attempt is made and the visitor data does not exist for the visitor ID provided, or if a visitor ID is not provided, the purchase will be treated as fraud."},"reject_datacenter":{"type":"boolean","description":"Whether to reject visitors from datacenters or not. If enabled, if a purchase attempt is made and the visitor data associated with the visitor ID provided indicates that the visitor is from a datacenter, the purchase will be treated as fraud."},"reject_proxy":{"type":"boolean","description":"Whether to reject visitors from proxies or not. If enabled, if a purchase attempt is made and the visitor data associated with the visitor ID provided indicates that the visitor is from a proxy, the purchase will be treated as fraud."},"reject_vpn":{"type":"boolean","description":"Whether to reject visitors from VPNs or not. If enabled, if a purchase attempt is made and the visitor data associated with the visitor ID provided indicates that the visitor is from a VPN, the purchase will be treated as fraud. Recommended set to false."},"reject_country":{"type":"array","description":"Countries whose associated visitor purchase attempts are rejected as fraud. Use valid three-letter ISO 3166-1 alpha-3 codes. Codes are normalized to uppercase; empty entries are not allowed. An empty array clears the list. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","items":{"type":"string","description":"A valid three-letter ISO 3166-1 alpha-3 country code, such as USA, CAN or MEX. Leading and trailing whitespace is removed and letters are normalized to uppercase. Empty entries are not allowed. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["RUS"]}}}},"fraud_firewall":{"type":"object","additionalProperties":false,"description":"RevCent's fraud firewall can prevent fraud purchases based on IP. The fraud firewall will immediately reject any sale attempts without creating a sale or attempting payment for IP addresses that match settings.","properties":{"enabled":{"type":"boolean","description":"Whether the fraud firewall is enabled or not. If disabled, all fraud firewall settings are ignored."},"ip_sale_limit":{"type":"object","additionalProperties":false,"description":"The IP sale limit is a card testing prevention mechanism. If enabled, if a certain number of sales attempts are made from the same IP address within a set time period, the fraud firewall will block any further sale attempts from that IP address.<br><br>Recommended setting is max 5 sales within a 30 minute period, i.e. max_count = 5, max_time_unit = 'minutes', max_time_value = 30","properties":{"enabled":{"type":"boolean","description":"Whether the IP sale limit is enabled or not. If disabled, all IP sale limit settings are ignored."},"max_count":{"type":"integer","description":"The number of sale attempts from the same IP address within the time period that will trigger the fraud firewall to block further sale attempts from that IP address.","examples":[0]},"max_time_unit":{"type":"string","description":"The time unit for which the sale attempt limit applies. Combined with max_time_value, this determines the time period for which the sale attempt limit applies. For example, if max_time_unit is 'minutes' and max_time_value is 30, the time period for which the sale attempt limit applies is 30 minutes. If max_time_unit is 'hours' and max_time_value is 2, the time period for which the sale attempt limit applies is 2 hours.","enum":["minutes","hours","days","weeks","months"],"examples":["minutes"]},"max_time_value":{"type":"integer","description":"The time period value for which the sale attempt limit applies. Combined with max_time_unit, this determines the time period for which the sale attempt limit applies. For example, if max_time_unit is 'minutes' and max_time_value is 30, the time period for which the sale attempt limit applies is 30 minutes. If max_time_unit is 'hours' and max_time_value is 2, the time period for which the sale attempt limit applies is 2 hours.","examples":[0]},"add_fraud_alerts":{"type":"boolean","description":"Whether to automatically add fraud alerts to all sales which match the time period above. Recommended set to true."}}},"ip_fraud_detection":{"type":"object","additionalProperties":false,"description":"Whether to enable fraud detection based on IP matching. If at least one fraud detection in the lifetime of your account has the same IP address, reject the payment attempt.","properties":{"enabled":{"type":"boolean","description":"Whether the IP fraud detection setting is enabled or not. Recommended set to true."}}},"ip_chargeback":{"type":"object","additionalProperties":false,"description":"Whether to enable chargeback detection based on IP matching. If at least one chargeback in the lifetime of your account has the same IP address, reject the payment attempt.","properties":{"enabled":{"type":"boolean","description":"Whether the IP chargeback detection setting is enabled or not. Recommended set to true."}}},"ip_whitelist":{"type":"object","additionalProperties":false,"description":"A list of IP addresses that are allowed to bypass the fraud firewall settings regardless of sale limits, previous fraud or chargeback history.","properties":{"enabled":{"type":"boolean","description":"Whether the IP whitelist setting is enabled or not."},"ip_list":{"type":"array","description":"A list of IPV4 or IPV6 addresses that are allowed to bypass the fraud firewall settings. IP ranges are not supported.","items":{"type":"string","description":"The IP address to whitelist.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"ip_blacklist":{"type":"object","additionalProperties":false,"description":"A list of IP addresses that are blocked from making purchases. If a purchase attempt is made with an IP address in the blacklist, the purchase will be treated as fraud.","properties":{"enabled":{"type":"boolean","description":"Whether the IP blacklist setting is enabled or not."},"ip_list":{"type":"array","description":"A list of IPV4 or IPV6 addresses that are blocked from making purchases. IP ranges are not supported.","items":{"type":"string","description":"The IP address to blacklist.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"third_party_fraud_check":{"type":"object","additionalProperties":false,"description":"Configure an existing Kount, MaxMind, IPQS or SEON integration for Sentinel fraud checks. Omitted fields keep their current values. Checks apply to live payments when Sentinel and this setting are enabled; test-mode payments skip these checks. Kount also requires the account-level Kount setting to be enabled. Updating these settings does not perform a fraud check or change integration credentials.","properties":{"enabled":{"type":"boolean","description":"Whether Sentinel uses the selected third-party fraud integration. Enabling requires an eligible integration supplied in this request or already selected. Disabling keeps the selected integration."},"third_party_integration_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"A 20 character RevCent ID of an enabled, available Kount, MaxMind, IPQS or SEON integration owned by your account; its provider must also be enabled. Supply an ID to replace the selection without changing the enabled setting. Omit to keep the selection, or send null to clear it and disable third-party checks. Null cannot be combined with enabled: true. An invalid selection rejects the entire settings update.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"not":{"type":"object","required":["enabled","third_party_integration_id"],"properties":{"enabled":{"const":true},"third_party_integration_id":{"type":"null"}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping":{"get":{"summary":"Get Shipments","description":"List available shipments, newest first, with payment, fulfillment and related-resource information. Date range, limit and page are required. Use customer_id to retrieve a customer’s shipments without date filtering; the supplied dates must still pass validation.","operationId":"GetShipments","x-api-permission-description":"Allows the retrieval of shipments.","x-api-permission":"shipping:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The difference between date_start and date_end cannot exceed a 90 day period.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/GetShipments.md","tags":["Shipping"],"parameters":[{"description":"Inclusive creation-date start as a Unix timestamp in seconds. Required with date_end; the range must be shorter than 95 elapsed days. When customer_id is supplied, dates are validated but do not filter results. If repeated, the last value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive creation-date end as a Unix timestamp in seconds. Must be at or after date_start and less than 95 elapsed days later. Equal endpoints return no date-matched shipments unless customer_id bypasses date filtering. Required even with customer_id. If repeated, the last value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of shipments per page, from 1 to 25. There is no default when omitted. If repeated, the last value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. If repeated, the last value is used. Total pages may exceed 20; narrow supported filters to access a smaller result set. Dates do not narrow results when customer_id is supplied.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by associated campaign IDs. Up to 50 distinct values; repeat the parameter for multiple campaigns. Values combine with OR, while different filter families combine with AND. Explicit selection can include campaigns hidden from default lists.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by payment type. Up to 50 distinct registered values, combined with OR; different filter families combine with AND.","name":"payment_type_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"description":"Filter by associated user-shop IDs. Up to 50 distinct values, combined with OR. This filter can narrow the shops accessible to the API key.","name":"shop_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"description":"Filter by payment status using the listed filter values, which differ from returned status text. Values combine with OR; different filter families combine with AND.","name":"status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["nocapture","captured","settled","refund","void"],"examples":["captured","settled"]}},"style":"form","explode":true},{"description":"Filter by delivery or fulfillment status using the listed filter values, which differ from returned shipping_status text. Values combine with OR.","name":"shipping_status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["shipped","notshipped","merged","delivered","error"],"examples":["shipped","notshipped","merged","delivered","error"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct shipping-provider values, combined with OR. Each value matches exactly, regardless of capitalization; fedex and fedex_uk are separate providers.","name":"shipping_provider_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"],"examples":["apc","asendia","australia_post","canada_post","dhl","dhl_ecommerce","dhl_express","dhl_express_australia","dhl_express_canada","dhl_express_uk","dpd","endicia","fedex","fedex_uk","firstmile","globegistics","newgistics","ontrac","purolator","rr_donnelley","stampscom","ups","usps","other"]}},"style":"form","explode":true},{"description":"Filter by associated fulfillment-account IDs. Up to 50 distinct values, combined with OR.","name":"fulfillment_account_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character fulfillment account ID.","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]}},"style":"form","explode":true},{"description":"Filter by metadata name/value pairs. Supply repeated JSON objects or bracketed name/value parameters. Up to 50 pairs; each requires a name of 1–100 characters and a value of 1–255 characters. Different names combine with AND; values for the same name combine with OR. METADATA_NAME_EXISTS matches a name regardless of value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose shipments to retrieve. Bypasses creation-date filtering, but date_start and date_end remain required and must specify a valid range shorter than 95 days.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Shipment results and pagination information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not payment or delivery success.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of shipments returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The returned page number. A request for page 0 returns page 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The shipment's 20 character RevCent ID, usable with GetShipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"amount":{"description":"The shipment's gross payment amount, also exposed as amount_gross.","type":"number","format":"float","examples":[14.99]},"amount_original_total":{"description":"The shipment's original total before subsequent adjustments.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The shipment's current total after applicable adjustments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The shipment's gross payment amount, distinct from its order total.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The shipment's net payment amount after applicable fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The shipment's payment fee amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The shipment's captured amount awaiting settlement.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The shipment's settled amount.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The shipment's remaining payment amount.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The shipment's refunded or cancelled amount.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"The associated campaign's 20 character RevCent ID, when available. Its name may be omitted.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available details of the customer associated with the shipment.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized uppercase three-letter ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","maxLength":3,"minLength":3,"examples":["USA"]},"email":{"type":"string","description":"The available email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when this resource was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"iso_currency":{"description":"The recognized three-letter ISO 4217 currency code, preserving case. Omitted when unavailable or unrecognized; no currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"products_detailed":{"description":"Up to 50 available product summaries for this shipment; not necessarily its complete product inventory.","items":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["USB HDD"]},"quantity":{"description":"The product quantity as an integer, when available. Historical zero and negative values may be returned.","type":"integer","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[249.99]},"total_amount":{"description":"The total amount for this product in the shipment.","type":"number","format":"float","examples":[249.99]},"discount_amount":{"description":"The total amount discounted for the specific product purchased.","type":"number","format":"float","examples":[9.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[false]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's own product reference.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The product SKU.","examples":["usb_hdd"]},"uuid":{"type":"string","description":"The UUID generated for the specific product within the sale. Useful for linking to related product discounts within the sale.","examples":["94cf3ea0-2ff1-415b-ae6c-c8b3f9e38348"]},"url":{"type":"string","description":"The product URL at a third party shop.","examples":["mystore.com/usb-hdd"]},"images":{"type":"array","description":"Up to 50 available images for this product.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image file name, combine with file_ext.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The image file extension, combine with file_name.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image file mimetype.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The root URL where the image is hosted. Combine with file_name and file_ext for a complete URL.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The full URL for embedding or downloading the image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]}}},"maxItems":50}},"type":"object"},"type":"array","maxItems":50},"cost":{"description":"The shipment's cost, in major currency units.","type":"number","examples":[4]},"customer_notification":{"description":"Indicates any notification emails sent to the shipping customer.","type":"object","additionalProperties":false,"properties":{"customer":{"type":"object","additionalProperties":false,"properties":{"notified_shipped":{"description":"Whether the customer was sent an email when the item was shipped.","type":"boolean","examples":[false]},"notified_delivered":{"description":"Whether the customer was sent an email when the item was delivered.","type":"boolean","examples":[false]}},"description":"The customer associated with this resource."}}},"fulfillment_account":{"description":"The fulfillment account associated with the shipping.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the fulfillment account.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"The fulfillment account name.","type":"string","examples":["ShipWorks"]},"fulfillment_center":{"description":"The fulfillment center associated with the fulfillment account.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the site fulfillment center.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"The fulfillment center name.","type":"string","examples":["ShipWorks"]}}}}},"fulfillment_account_notified":{"description":"Indicates whether the fulfillment center was notified.","type":"boolean","examples":[false]},"fulfillment_account_notified_date":{"description":"The ISO8601 date when fulfillment was notified, if applicable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"is_delivered":{"description":"Indicates whether the shipment has been delivered.","type":"boolean","examples":[false]},"is_free":{"description":"Indicates whether the shipment was free, i.e. the customer did not pay any amount.","type":"boolean","examples":[true]},"is_merged":{"description":"Whether this shipment was merged into another shipment.","type":"boolean","examples":[false]},"is_merged_with":{"description":"The receiving shipment's 20 character RevCent ID, when available.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"is_shipped":{"description":"Indicates whether the shipment has been shipped.","type":"boolean","examples":[false]},"name":{"description":"The shipment name.","type":"string","examples":["System Generated"]},"payment_type":{"type":"object","additionalProperties":false,"description":"The available recognized payment type ID/name pair: Credit Card, PayPal, Offline Payment or Check.","properties":{"id":{"type":"string","minLength":20,"maxLength":20,"enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"The 20 character RevCent payment-type ID, paired with its corresponding name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"The name corresponding to the payment-type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"provider":{"description":"The shipping provider.","type":"string","examples":["usps"]},"provider_delivered_date_unix":{"description":"Unix timestamp in seconds when the shipment was delivered.","type":"integer","format":"unix-time","examples":[1706030353]},"provider_method":{"description":"The shipping provider method","type":"string","examples":["priority"]},"provider_tracking":{"description":"The provider tracking number.","type":"string","examples":["9406217624611293469527"]},"provider_tracking_url":{"description":"The tracking URL.","type":"string","examples":["https://tools.usps.com/go/TrackConfirmAction?tLabels=9406217624611293469527"]},"ship_date_unix":{"description":"Unix timestamp in seconds when the shipment was shipped.","type":"integer","format":"unix-time","examples":[1706030353]},"ship_to":{"type":"object","additionalProperties":false,"description":"The shipment’s destination address and contact details.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized uppercase three-letter ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","maxLength":3,"minLength":3,"examples":["USA"]},"email":{"type":"string","description":"The available email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"shipping_profile":{"description":"The shipping profile associated with the shipment.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the shipping profile.","type":"string","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"name":{"description":"The shipping profile name","type":"string","examples":["Trial Create Shipping"]}}},"shipping_status":{"description":"Delivery or fulfillment status. Common values include Shipped, Not Shipped, Merged, Delivered, Error and In Transit; other historical values may be returned. Query filter values are documented separately.","type":"string","examples":["Shipped","Not Shipped","Merged","Delivered","Error"]},"third_party_shop":{"description":"The originating user shop, if applicable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when this resource was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. Retrieve details with GetSale.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. Retrieve details with GetProductSale.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. Retrieve details with GetTax.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs. Retrieve details with GetDiscount.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs. Retrieve details with GetTrial.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. Retrieve details with GetSubscription.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. Retrieve details with GetSubscriptionRenewal.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transaction IDs. Retrieve details with GetTransaction.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs. Retrieve details with GetAIThread.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI assistant IDs. Retrieve details with GetAIAssistant.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs. Retrieve details with GetPayPalTransaction.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs. Retrieve details with GetOfflinePayment.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check payment IDs. Retrieve details with GetCheckDirect.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs. Retrieve details with GetSalvageTransaction.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs. Retrieve details with GetPendingRefund.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs. Retrieve details with GetChargeback.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs. Retrieve details with GetFraudDetection.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. Retrieve details with GetAPICall.","maxItems":50},"amount_discounted":{"description":"The amount discounted from the shipment.","format":"float","type":"number"},"amount_to_salvage":{"description":"The shipment amount available for recovery.","format":"float","type":"number"},"fulfillment_account_order_id":{"description":"The order identifier assigned by the fulfillment account.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"has_merged":{"description":"Whether this shipment received other merged shipments.","type":"boolean"},"has_merged_with":{"description":"Up to 50 available IDs of shipments merged into this shipment. This is not a complete history.","items":{"type":"string","description":"20 character RevCent ID of the shipping.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"},"status":{"description":"The shipment's payment status, distinct from shipping_status. Historical text is preserved; status_filter uses its own narrower values.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"Shipment summaries. Monetary amounts use the major units of iso_currency; do not assume a currency when it is absent. Optional fields may be omitted. Related-resource arrays contain up to 50 available IDs and may be incomplete, including when empty."},"type":"array","maxItems":25,"description":"Up to the requested limit of available shipments. Optional values and unavailable related summaries may be omitted."},"total_count":{"description":"The total number of available shipments matching all applicable filters. Dates do not restrict this total when customer_id is supplied.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total count divided by the requested limit, rounded up. This may exceed 20 even though only pages through 20 are accessible.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping/{shipping_id}":{"get":{"summary":"Get A Shipment","description":"Retrieve a shipment’s payment, delivery, fulfillment and related-resource information. Supply shipping_id in the path; query parameters are not supported.","operationId":"GetShipment","x-api-permission-description":"Allows the retrieval of shipments.","x-api-permission":"shipping:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/GetShipment.md","tags":["Shipping"],"parameters":[{"in":"path","name":"shipping_id","description":"20 character RevCent ID of the shipment to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Shipment details. Monetary amounts use the major units of iso_currency, when available; do not assume a currency when omitted. Related-resource arrays contain up to 50 available entries and may be incomplete, including when empty. Optional values and summaries may be omitted.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not payment or delivery success.","type":"integer","const":1,"examples":[1]},"created_date_unix":{"description":"When the shipment record was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"amount":{"description":"The shipment's gross payment amount, also exposed as amount_gross.","type":"number","format":"float","examples":[14.99]},"amount_original_total":{"description":"The shipment's original total before subsequent adjustments.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"The shipment's current total after applicable adjustments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"The shipment's gross payment amount, distinct from its order total.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"The shipment's net payment amount after applicable fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"The shipment's payment fee amount.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"The shipment's captured amount awaiting settlement.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"The shipment's settled amount.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"The shipment's remaining payment amount.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"The shipment's refunded or cancelled amount.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"The associated campaign's 20 character RevCent ID, when available. Its name may be omitted.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The available campaign name.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"The available customer summary. Customer status describes the customer, separately from shipment payment and delivery status.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized uppercase three-letter ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","maxLength":3,"minLength":3,"examples":["USA"]},"email":{"type":"string","description":"The available email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"iso_currency":{"description":"The recognized three-letter ISO 4217 currency code, preserving case. Omitted when unavailable or unrecognized; no currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"products_detailed":{"description":"Up to 50 available product summaries for this shipment; not necessarily its complete product inventory.","items":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["USB HDD"]},"quantity":{"description":"The product quantity as an integer. Fractional or invalid quantities are omitted without rounding; historical zero and negative integers may be returned.","type":"integer","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[249.99]},"total_amount":{"description":"The total product amount, i.e. price * quantity.","type":"number","format":"float","examples":[249.99]},"discount_amount":{"description":"The total amount discounted for the specific product purchased.","type":"number","format":"float","examples":[9.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[false]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's own product reference.","examples":["usbhdd101"]},"sku":{"type":"string","description":"The product SKU.","examples":["usb_hdd"]},"uuid":{"type":"string","description":"The UUID generated for the specific product within the sale. Useful for linking to related product discounts within the sale.","examples":["94cf3ea0-2ff1-415b-ae6c-c8b3f9e38348"]},"url":{"type":"string","description":"The product URL at a third party shop.","examples":["mystore.com/usb-hdd"]},"images":{"type":"array","description":"Up to 50 available images for this product.","items":{"type":"object","additionalProperties":false,"properties":{"featured":{"type":"boolean","description":"Whether the product image is the featured image to display.","examples":[true]},"file_name":{"type":"string","description":"The image file name, combine with file_ext.","examples":["2r14zlG0mjF5zbQ24XAl"]},"file_ext":{"type":"string","description":"The image file extension, combine with file_name.","examples":["jpg"]},"image_width":{"description":"The image width in pixels.","type":"integer","examples":[612]},"image_height":{"description":"The image height in pixels.","type":"integer","examples":[612]},"mimetype":{"type":"string","description":"The image file mimetype.","examples":["image/jpeg"]},"base_url":{"type":"string","description":"The root URL where the image is hosted. Combine with file_name and file_ext for a complete URL.","examples":["https://productimg.revcent.com"]},"full_url":{"type":"string","description":"The full URL for embedding or downloading the image.","examples":["https://productimg.revcent.com/2r14zlG0mjF5zbQ24XAl.jpg"]}}},"maxItems":50}},"type":"object"},"type":"array","maxItems":50},"cost":{"description":"The shipment's cost, in major currency units.","type":"number","examples":[4]},"customer_notification":{"description":"Indicates any notification emails sent to the shipping customer.","type":"object","additionalProperties":false,"properties":{"customer":{"type":"object","additionalProperties":false,"properties":{"notified_shipped":{"description":"Whether the customer was sent an email when the item was shipped.","type":"boolean","examples":[false]},"notified_delivered":{"description":"Whether the customer was sent an email when the item was delivered.","type":"boolean","examples":[false]}},"description":"The customer associated with this resource."}}},"fulfillment_account":{"description":"The available fulfillment-account summary, with an optional fulfillment-center summary.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the fulfillment account.","type":"string","minLength":20,"maxLength":20,"examples":["BEORn9wEJ1IdK86pyzBX","r1EbJ7R8J7SZQ8VjLvQO"]},"name":{"description":"The fulfillment account name.","type":"string","examples":["ShipWorks"]},"fulfillment_center":{"description":"The fulfillment center associated with the fulfillment account.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the site fulfillment center.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"Fulfillment center system name.","type":"string","examples":["ShipWorks"]}}}}},"fulfillment_account_notified":{"description":"Indicates whether the fulfillment center was notified.","type":"boolean","examples":[false]},"fulfillment_account_notified_date":{"description":"The available fulfillment-account notification timestamp in ISO 8601 UTC; omitted when unavailable.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"is_delivered":{"description":"Indicates whether the shipment has been delivered.","type":"boolean","examples":[false]},"is_free":{"description":"Indicates whether the shipment was free, i.e. the customer did not pay any amount.","type":"boolean","examples":[true]},"is_merged":{"description":"Whether this shipment was merged into another shipment.","type":"boolean","examples":[false]},"is_merged_with":{"description":"The receiving shipment's 20 character RevCent ID, when available.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"is_shipped":{"description":"Indicates whether the shipment has been shipped.","type":"boolean","examples":[false]},"name":{"description":"The shipment name.","type":"string","examples":["System Generated"]},"payment_type":{"type":"object","additionalProperties":false,"description":"The available recognized payment type ID/name pair: Credit Card, PayPal, Offline Payment or Check.","properties":{"id":{"type":"string","minLength":20,"maxLength":20,"enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"The 20 character RevCent payment-type ID, paired with its corresponding name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"The name corresponding to the payment-type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"provider":{"description":"The shipping provider.","type":"string","examples":["usps"]},"provider_delivered_date_unix":{"description":"The available delivery date reported for the shipment, in Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"provider_method":{"description":"The shipping provider method","type":"string","examples":["priority"]},"provider_tracking":{"description":"The provider tracking number.","type":"string","examples":["9406217624611293469527"]},"provider_tracking_url":{"description":"The tracking URL.","type":"string","examples":["https://tools.usps.com/go/TrackConfirmAction?tLabels=9406217624611293469527"]},"ship_date_unix":{"description":"The available shipment date, in Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"ship_to":{"type":"object","additionalProperties":false,"description":"Available shipping-destination contact and address fields.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"The recognized uppercase three-letter ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","maxLength":3,"minLength":3,"examples":["USA"]},"email":{"type":"string","description":"The available email text, which may contain historical values.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"shipping_profile":{"description":"The available shipping-profile ID/name summary.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the shipping profile.","type":"string","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"name":{"description":"The shipping profile name","type":"string","examples":["Trial Create Shipping"]}}},"shipping_status":{"description":"The shipment’s delivery or fulfillment status. Common values include Shipped, Not Shipped, Merged, Delivered, Error and In Transit; other historical values may be returned.","type":"string","examples":["Shipped","Not Shipped","Merged","Delivered","Error"]},"third_party_shop":{"description":"The available associated shop ID/name summary.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"An array of metadata objects, each metadata object being a name and value pair.","maxItems":50},"updated_date_unix":{"description":"When the shipment record was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. Retrieve details with GetSale.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. Retrieve details with GetProductSale.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related tax IDs. Retrieve details with GetTax.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs. Retrieve details with GetDiscount.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs. Retrieve details with GetTrial.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. Retrieve details with GetSubscription.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to 50 available related subscription renewal IDs. Retrieve details with GetSubscriptionRenewal.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transaction IDs. Retrieve details with GetTransaction.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 available related AI thread IDs. Retrieve details with GetAIThread.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 available related AI assistant IDs. Retrieve details with GetAIAssistant.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs. Retrieve details with GetPayPalTransaction.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs. Retrieve details with GetOfflinePayment.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check payment IDs. Retrieve details with GetCheckDirect.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs. Retrieve details with GetSalvageTransaction.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs. Retrieve details with GetPendingRefund.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs. Retrieve details with GetChargeback.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs. Retrieve details with GetFraudDetection.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 available related API call IDs. Retrieve details with GetAPICall.","maxItems":50},"amount_discounted":{"description":"The amount discounted from the shipment.","format":"float","type":"number"},"amount_to_salvage":{"description":"The shipment amount available for recovery.","format":"float","type":"number"},"fulfillment_account_order_id":{"description":"The order identifier assigned by the fulfillment account.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"has_merged":{"description":"Whether this shipment received other merged shipments.","type":"boolean"},"has_merged_with":{"description":"Up to 50 available IDs of shipments merged into this shipment. This is not a complete history.","items":{"type":"string","description":"20 character RevCent ID of the shipping.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"type":"array"},"status":{"description":"The shipment’s payment status, distinct from its delivery or fulfillment status in shipping_status. Historical status text may be returned.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Shipment","description":"Edit a shipment using its shipment ID. Omitted fields retain their values, subject to the effects of shipped and delivered described below. Ship-to address changes are forwarded to fulfillment where applicable. Contradictory shipment flags reject the entire edit without applying changes.","operationId":"EditShipment","x-api-permission-description":"Allows the editing of shipments.","x-api-permission":"shipping:edit","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/EditShipment.md","tags":["Shipping"],"parameters":[{"in":"path","name":"shipping_id","description":"The shipping ID","required":true,"schema":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"provider":{"description":"The shipping provider.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"description":"The shipping provider method.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_tracking":{"description":"The provider tracking number.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"shipped":{"description":"Whether the shipment has shipped. False also clears delivered and the shipping date. True preserves an existing delivered state. The shipping date is preserved for an already-shipped shipment; it is set when transitioning to shipped or when a state edit leaves a shipped shipment without a date. Cannot be false with delivered: true.","type":"boolean"},"delivered":{"description":"Whether the shipment has been delivered. True also sets shipped to true, with the shipping-date behavior described for shipped. False preserves shipped unless shipped is also supplied. Cannot be true with shipped: false.","type":"boolean"},"ship_to":{"description":"The ship to information for the item.","type":"object","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","description":"The shipping email address. Supply a valid email address, or an empty string to clear it. Omit to preserve the current email address.","anyOf":[{"format":"email"},{"const":""}],"examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","not":{"type":"object","required":["shipped","delivered"],"properties":{"shipped":{"const":false},"delivered":{"const":true}}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"shipping_id":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","enum":["Shipping information successfully edited."],"description":"Confirmation that the shipment edit succeeded.","examples":["Shipping information successfully edited."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping/{shipping_id}/refund":{"post":{"summary":"Refund A Shipment","description":"Refund a shipment using the shipment ID. If partially refunding, provide the amount property in the request body. If the amount property is not provided, the shipment will be refunded entirely.","operationId":"RefundShipment","x-api-permission-description":"Allows the refunding of shipments.","x-api-permission":"shipping:refund","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/RefundShipment.md","tags":["Shipping"],"parameters":[{"in":"path","name":"shipping_id","description":"The shipping ID","required":true,"schema":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount to refund. If not provided the entire shipping amount will be refunded.","type":"number","format":"float","examples":[129.99]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"shipping_id":{"type":"string","description":"A 20 character shipping ID of the shipping being refunded.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the refund."},"result":{"type":"string","examples":["Pending refund created for shipping."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping/search":{"get":{"summary":"Search Shipping","description":"Search shipments and return up to ten matches ranked by relevance. Use a result’s id with GetShipment for available shipment details. Results may be incomplete; pagination is not supported.","operationId":"SearchShipping","x-api-permission-description":"Allows the searching of shipments.","x-api-permission":"shipping:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a shipment when you do not know the shipment ID and wish to retrieve the details of a specific shipment. Once a shipment has been found, use an individual search results' id property and the GetShipment operation to retrieve the shipment details.<br><br>Important: If using the SearchShipping and GetShipment method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the shipment using a secondary non-provided value, such as the customer email in the GetShipment response, before providing information or taking action.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/SearchShipping.md","tags":["Shipping"],"parameters":[{"name":"search_term","description":"Required search term or phrase, trimmed of surrounding whitespace and nonblank. Repeated values use the last effective value. Searches shipment ID, destination first/last name and first address line, provider tracking number, fulfillment-account order ID and shipment metadata values. Current customer fields are not searched. No other query parameters are supported.","in":"query","required":true,"schema":{"type":"string","examples":["60158776104"]},"style":"form","x-additional-info":"The search engine analyzes the following fields:<br><table class=\"table table-bordered\"><thead class=\"small\"><tr><th>Field</th> <th>Description</th></tr></thead> <tbody><tr><td>id</td> <td>The RevCent ID of the shipment.</td></tr> <tr><td>ship_to_first_name</td> <td>The ship to first name for the shipment.</td></tr> <tr><td>ship_to_last_name</td> <td>The ship to last name for the shipment.</td></tr> <tr><td>ship_to_address_line_1</td> <td>The ship to address line 1.</td></tr> <tr><td>provider_tracking</td> <td>The shipment tracking number.</td></tr> <tr><td>metadata</td> <td>All metadata values within a shipment.</td></tr><tr><td>fulfillment_account_order_id</td> <td>The order identifier assigned by the fulfillment account.</td></tr></tbody></table>"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Shipment search results and API-call information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful search retrieval, not a payment or shipment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to ten matches in descending result relevance. Results may be empty or fewer after unavailable matches are omitted; they are not an exhaustive collection and omitted matches are not replaced. Use id with GetShipment for fuller details when available.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The available current customer's first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The available current customer's second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The available current customer's city.","examples":["Boston"]},"created_date_unix":{"description":"Shipment creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated customer, when available. Other customer details may be returned independently.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"delivered_date_unix":{"type":"integer","format":"unix-time","description":"Available provider-reported delivery date in Unix seconds; omitted when unavailable or invalid.","examples":[1893499200]},"email":{"type":"string","format":"email","description":"The available current customer email address, omitted when unavailable or invalid. This field is not a searchable shipment destination field.","examples":["alex@example.com"]},"first_name":{"type":"string","description":"The available current customer's first name.","examples":["Alex"]},"fulfillment_account_order_id":{"type":"string","description":"The order identifier assigned by the fulfillment account. Returns an empty string when absent; null or invalid values are omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"highlights":{"type":"array","description":"Optional matching context using the public match labels. Highlights may be incomplete.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["fulfillment_account_order_id","id","metadata","provider_tracking","ship_to_address_line_1","ship_to_first_name","ship_to_last_name"],"description":"The search field where the highlighted match was found.","examples":["ship_to_last_name"]},"values":{"type":"array","description":"Available matching text fragments for this label; may be empty.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"Optional relevance information for this highlighted passage, distinct from the whole result score. Unavailable or nonfinite values are omitted; no 0–1 range is guaranteed.","examples":[0]},"full_text":{"type":"string","description":"Available match text with context, returned only for metadata highlights. It need not contain the complete metadata value or correspond to an entry in the returned metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"20 character RevCent ID of the matching shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"item_type":{"type":"string","const":"shipping","description":"The item type returned in the search result.","examples":["shipping"]},"last_name":{"type":"string","description":"The available current customer's last name.","examples":["River"]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid name/value pairs, preserving text, order and duplicates. May be empty or omitted and is not guaranteed complete.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"The available current customer's phone text.","examples":["+12025550123"]},"provider":{"type":"string","description":"The available shipping provider identifier in uppercase. Empty strings are preserved; unavailable or nonstring values are omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"type":"string","description":"Available shipping provider method text; may be empty or omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_tracking":{"type":"string","description":"Available provider tracking number; may be empty or omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"score":{"type":"number","description":"Relevance information for the whole result, distinct from individual highlight scores. Higher scores indicate greater relevance, without a guaranteed 0–1 range. Returns 1 when absent; null or invalid values are omitted.","examples":[7.68]},"ship_date_unix":{"type":"integer","format":"unix-time","description":"Available shipment date in Unix seconds; omitted when unavailable or invalid.","examples":[1893499200]},"ship_to_address_line_1":{"type":"string","description":"The shipment destination's first address line.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_address_line_2":{"type":"string","description":"The shipment destination's second address line.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_city":{"type":"string","description":"The shipment destination's city.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_first_name":{"type":"string","description":"The shipment destination's first name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_last_name":{"type":"string","description":"The shipment destination's last name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_state":{"type":"string","description":"The shipment destination's state or region.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"ship_to_zip":{"type":"string","description":"The shipment destination's ZIP or postal code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"shipping_status":{"type":"string","description":"Available shipment-status text, including historical values; may be empty or omitted. This is separate from the search retrieval code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"state":{"type":"string","description":"The available current customer's state or region.","examples":["MA"]},"url":{"type":"string","format":"uri","description":"The RevCent shipment-details URL identifying this result's id.","examples":["https://revcent.com/user/shipping-details/ALRjyqRE27fjMonyKLny"]},"zip":{"type":"string","description":"The available current customer's ZIP or postal code.","examples":["02108"]}},"description":"Available shipment search details. Customer fields describe current customer information and may differ from the shipment destination in ship_to_* fields. Customer fields are not searched. Optional text may be empty or contain historical values."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping_profiles":{"get":{"summary":"Get Shipping Profiles","description":"List account shipping profiles, newest first, with their available rates and qualification conditions. Only limit and page are supported; date filters are not available.","operationId":"GetShippingProfiles","x-api-permission-description":"Allows the retrieval of Shipping Profiles.","x-api-permission":"shipping_profile:retrieve","x-ai-options":["mcp"],"x-additional-info":"The page and limit URL parameters are required.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping Profiles","x-md-link":"markdown/mcp/operation/GetShippingProfiles.md","tags":["Shipping Profiles"],"parameters":[{"description":"Required maximum number of shipping profiles per page, from 1 to 25. There is no default when omitted. If repeated, the last value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. If repeated, the last value is used. total_pages may exceed 20, but pages above 20 cannot be requested.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Shipping profiles and pagination information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not validation of shipping configuration.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of shipping profiles returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The returned page number. A request for page 0 returns page 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"Saved shipping-rate configuration. Rate amounts and revenue thresholds use major units of the purchase currency; the profile has no independent currency. Unavailable optional settings are omitted, not replaced with free or unrestricted configuration.","additionalProperties":false,"properties":{"created_date_unix":{"description":"When the shipping profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the shipping-profile.","type":"string","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"name":{"description":"The shipping profile’s name; may be empty.","type":"string","examples":["My Shipping Profile"]},"description":{"description":"The shipping-profile description; an empty string is returned when unavailable.","type":"string","examples":["Used for calculating shipping rates."]},"enabled":{"description":"Whether the shipping profile is enabled. Disabled profiles are also returned.","type":"boolean","examples":[true]},"rates":{"type":"array","description":"Available shipping-rate configuration, without an item cap. May be empty; unusable entries are omitted.","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"description":"The configured shipping amount in the purchase currency's major units. Zero and fractional values are preserved. Omitted when unavailable or invalid; omission does not mean free shipping.","type":"number","format":"float","minimum":0,"examples":[9.99]},"provider":{"description":"20 character RevCent ID of the site shipping-provider.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"provider_method":{"description":"20 character RevCent ID of the shipping-provider method.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"qualifiers":{"type":"object","description":"Saved product, product-group, destination-country and revenue conditions for this rate. Arrays may be empty or contain only disabled entries. Missing or unusable entries can make returned configuration incomplete; retrieval does not establish that a rate will apply.","additionalProperties":false,"properties":{"products":{"description":"Available product qualifiers, preserving order and duplicates. Enabled qualifiers compare each applicable product and its quantity. May be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]},"quantity_rule":{"description":"Comparison of the product quantity with quantity_value. The any comparison ignores the threshold. Omitted when unavailable or unrecognized.","type":"string","enum":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"]},"quantity_value":{"description":"The saved nonnegative whole-number quantity threshold. Zero is preserved; omitted when unavailable or invalid. Not used by the any comparison.","type":"integer","minimum":0,"examples":[1]}}}},"product_groups":{"description":"Available product-group qualifiers, preserving order and duplicates. May be empty; missing summaries do not establish unrestricted configuration.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product-group.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]}}}},"countries":{"description":"Available destination-country qualifiers, preserving order and duplicates. Enabled countries identify permitted destinations for this condition. May be empty or contain only disabled entries.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"iso_code":{"type":"string","description":"An uppercase ISO 3166-1 alpha-3 country code.","minLength":3,"maxLength":3,"examples":["USA","CAN"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]}}}},"revenue_rules":{"type":"array","description":"Available revenue conditions for the rate. Each enabled condition compares its selected amount with its threshold. May be empty or contain only disabled entries.","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]},"source":{"description":"The amount compared: total_amount is the product total before discounts, excluding shipping and tax; transaction_amount is the billable non-trial product total before discounts; shippable_products is the applicable shippable-product total after discounts.","type":"string","enum":["total_amount","transaction_amount","shippable_products"],"examples":["total_amount","transaction_amount","shippable_products"]},"rule":{"description":"The comparison of the selected amount to rule_value: equal_to (=), greater_than (>), greater_than_equal_to (>=), less_than (<) or less_than_equal_to (<=).","type":"string","enum":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"]},"rule_value":{"description":"The nonnegative threshold in major units of the purchase currency. Zero and fractional values are preserved. Omitted when unavailable or invalid; omission is not a zero threshold.","type":"number","format":"float","minimum":0,"examples":[5]}}}}}},"rate_id":{"type":"string","description":"The saved opaque identifier for this rate, returned unchanged when available. This is not a RevCent resource ID. Supply it as rate_id on EditShippingProfile to retain this rate, including when reordering. Omitted when unavailable; never infer an identifier from position or provider/method. Historical values may not satisfy editing requirements.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"updated_date_unix":{"description":"When the shipping profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Shipping profiles for the requested page, including their available rates and qualifiers."},"total_count":{"description":"The total number of available shipping profiles for the account.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total number of result pages, calculated by rounding total_count divided by limit up. May exceed 20 although requests cannot exceed page 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Shipping Profile","description":"Create a shipping profile in RevCent.","operationId":"CreateShippingProfile","x-api-permission-description":"Allows the creation of Shipping Profiles.","x-api-permission":"shipping_profile:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping Profiles","x-md-link":"markdown/mcp/operation/CreateShippingProfile.md","tags":["Shipping Profiles"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The shipping profile name.","type":"string","examples":["Example"]},"description":{"description":"The shipping profile description.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the shipping profile is currently enabled.","type":"boolean"},"rates":{"type":"array","description":"An array of shipping rates for the shipping profile. At least one rate must be present in a shipping profile.","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"description":"The shipping rate amount. This is what the customer will be charged for shipping.","type":"number","format":"float","minimum":0},"provider":{"type":"string","description":"A 20 character site shipping provider ID.","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"provider_method":{"type":"string","description":"A 20 character site shipping provider method ID.","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"qualifiers":{"type":"object","description":"Qualifiers are used to determine if a shipping rate applies to a transaction based on settings such as product, product group, country and revenue rules.<br><br>Important: There must be at least one enabled qualifier for the shipping rate, within either 'products', 'product_groups', 'countries' or 'revenue_rules'. A shipping rate cannot contain zero enabled qualifiers.","additionalProperties":false,"properties":{"products":{"description":"An array of product objects, in which products associated with the shipment must match at least one of the product objects to qualify for the shipping rate. Leave empty to not require product qualification.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"enabled":{"description":"Whether the individual product qualifier is enabled.","type":"boolean"},"quantity_rule":{"description":"The quantity rule to apply for the individual product qualifier.","type":"string","enum":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["any"]},"quantity_value":{"description":"Nonnegative whole-number quantity to compare with quantity_rule. Must be at least 1 unless quantity_rule is any. For any, the value is ignored and zero is allowed.","type":"integer","minimum":0,"examples":[0]}},"required":["id","enabled","quantity_rule","quantity_value"],"allOf":[{"if":{"required":["quantity_rule"],"properties":{"quantity_rule":{"not":{"const":"any"}}}},"then":{"properties":{"quantity_value":{"minimum":1}}}}]}},"product_groups":{"description":"An array of product group objects, in which products associated with the shipment must match at least one of the product group objects to qualify for the shipping rate. Leave empty to not require product group qualification.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"Whether the individual product group qualifier is enabled.","type":"boolean"}},"required":["id","enabled"]}},"countries":{"description":"An array of country objects that qualify for the shipping rate. The shipment destination country must match at least one of the enabled country codes in the array to qualify for the shipping rate. Leave empty to apply to all countries.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"iso_code":{"type":"string","description":"A valid three-letter ISO 3166-1 alpha-3 country code. Leading and trailing whitespace is removed and letters are normalized to uppercase. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether the individual country qualifier is enabled.","type":"boolean"}},"required":["iso_code","enabled"]}},"revenue_rules":{"type":"array","description":"Revenue rules are specific to the shipping profile, and allow or disallow the use of the shipping rate based on revenue settings. You can add multiple revenue rules to a shipping rate. Leave empty to not require revenue rule qualification.","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean"},"source":{"description":"The source value, either the total amount of the associated purchase, the transaction amount of the associated purchase, or the total amount for shippable products in the transaction. This is used in combination with the rule and rule_value to determine if the rule passes or fails.","type":"string","enum":["total_amount","transaction_amount","shippable_products"],"examples":["total_amount"]},"rule":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["equal_to"]},"rule_value":{"description":"The rule_value is compared to the source value using the specified rule to determine if the rule passes or fails.","type":"number","format":"float","minimum":0}},"required":["enabled","source","rule","rule_value"]}}}}},"required":["rate","provider","provider_method","qualifiers"]},"minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name","rates"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"shipping_profile_id":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping_profiles/{shipping_profile_id}":{"get":{"summary":"Get A Shipping Profile","description":"Retrieve a shipping profile and its available rates and qualification conditions. Supply shipping_profile_id in the path; query parameters are not supported.","operationId":"GetShippingProfile","x-api-permission-description":"Allows the retrieval of Shipping Profiles.","x-api-permission":"shipping_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping Profiles","x-md-link":"markdown/mcp/operation/GetShippingProfile.md","tags":["Shipping Profiles"],"parameters":[{"in":"path","name":"shipping_profile_id","description":"20 character RevCent ID of the shipping profile to retrieve.","required":true,"schema":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Shipping profile details and available rate configuration. Rate amounts and revenue thresholds use major units of the purchase currency; the profile has no independent currency. Unavailable optional settings are omitted, not replaced with free or unrestricted configuration.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not validation of shipping configuration.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"When the shipping profile was created, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested shipping profile.","type":"string","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"name":{"description":"The shipping profile’s name; may be empty.","type":"string","examples":["My Shipping Profile"]},"description":{"description":"The shipping-profile description; an empty string is returned when unavailable.","type":"string","examples":["Used for calculating shipping rates."]},"enabled":{"description":"Whether the shipping profile is enabled. Disabled profiles are also returned.","type":"boolean","examples":[true]},"rates":{"type":"array","description":"Available shipping-rate configuration, without an item cap. May be empty; unusable entries are omitted.","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"description":"The configured shipping amount in the purchase currency's major units. Zero and fractional values are preserved. Omitted when unavailable or invalid; omission does not mean free shipping.","type":"number","format":"float","minimum":0,"examples":[9.99]},"provider":{"description":"20 character RevCent ID of the site shipping-provider.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"provider_method":{"description":"20 character RevCent ID of the shipping-provider method.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"qualifiers":{"type":"object","description":"Saved product, product-group, destination-country and revenue conditions for this rate. Arrays may be empty or contain only disabled entries. Missing or unusable entries can make returned configuration incomplete; retrieval does not establish that a rate will apply.","additionalProperties":false,"properties":{"products":{"description":"Available product qualifiers, preserving order and duplicates. Enabled qualifiers compare each applicable product and its quantity. May be empty.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]},"quantity_rule":{"description":"Comparison of the product quantity with quantity_value. The any comparison ignores the threshold. Omitted when unavailable or unrecognized.","type":"string","enum":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"]},"quantity_value":{"description":"The saved nonnegative whole-number quantity threshold. Zero is preserved; omitted when unavailable or invalid. Not used by the any comparison.","type":"integer","minimum":0,"examples":[1]}}}},"product_groups":{"description":"Available product-group qualifiers, preserving order and duplicates. May be empty; missing summaries do not establish unrestricted configuration.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product-group.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]}}}},"countries":{"description":"Available destination-country qualifiers, preserving order and duplicates. Enabled countries identify permitted destinations for this condition. May be empty or contain only disabled entries.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"iso_code":{"type":"string","description":"An uppercase ISO 3166-1 alpha-3 country code.","minLength":3,"maxLength":3,"examples":["USA","CAN"]},"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]}}}},"revenue_rules":{"type":"array","description":"Available revenue conditions for the rate. Each enabled condition compares its selected amount with its threshold. May be empty or contain only disabled entries.","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"The qualifier's enabled flag. Returns false when unavailable.","type":"boolean","examples":[true]},"source":{"description":"The amount compared: total_amount is the product total before discounts, excluding shipping and tax; transaction_amount is the billable non-trial product total before discounts; shippable_products is the applicable shippable-product total after discounts.","type":"string","enum":["total_amount","transaction_amount","shippable_products"],"examples":["total_amount","transaction_amount","shippable_products"]},"rule":{"description":"The comparison of the selected amount to rule_value: equal_to (=), greater_than (>), greater_than_equal_to (>=), less_than (<) or less_than_equal_to (<=).","type":"string","enum":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"]},"rule_value":{"description":"The nonnegative threshold in major units of the purchase currency. Zero and fractional values are preserved. Omitted when unavailable or invalid; omission is not a zero threshold.","type":"number","format":"float","minimum":0,"examples":[5]}}}}}},"rate_id":{"type":"string","description":"The saved opaque identifier for this rate, returned unchanged when available. This is not a RevCent resource ID. Supply it as rate_id on EditShippingProfile to retain this rate, including when reordering. Omitted when unavailable; never infer an identifier from position or provider/method. Historical values may not satisfy editing requirements.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"updated_date_unix":{"description":"When the shipping profile was last updated, in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Shipping Profile","description":"Edit a shipping profile. Provide only the fields to change. Supplying rates replaces the complete rate list; use rate_id to retain existing rates. Invalid or ambiguous rate or qualifier selections reject the entire edit without applying other changes.","operationId":"EditShippingProfile","x-api-permission-description":"Allows the editing of Shipping Profiles.","x-api-permission":"shipping_profile:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping Profiles","x-md-link":"markdown/mcp/operation/EditShippingProfile.md","tags":["Shipping Profiles"],"parameters":[{"in":"path","name":"shipping_profile_id","description":"The shipping profile ID.","required":true,"schema":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The shipping profile name.","type":"string","examples":["Example"]},"description":{"description":"The shipping profile description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the shipping profile is currently enabled.","type":"boolean"},"rates":{"type":"array","description":"Complete desired nonempty list of rates, in the desired order. Omit rates to preserve all existing rates. Include rate_id for each rate to retain; entries without rate_id create new rates with creation defaults. Existing rates absent from the list are removed. Identity is never inferred from array position or provider and method.","items":{"type":"object","additionalProperties":false,"properties":{"rate":{"description":"The shipping rate amount. This is what the customer will be charged for shipping.","type":"number","format":"float","minimum":0},"provider":{"description":"20 character RevCent ID of the shipping provider.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"provider_method":{"description":"20 character RevCent ID of the shipping-provider method.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"qualifiers":{"type":"object","description":"Complete replacement qualifier lists for this rate. Omitted lists or entries are removed. At least one qualifier across products, product_groups, countries and revenue_rules must be enabled. On retained rates, reordering or enabled changes do not change qualifier identity; changed identities create new qualifiers. Duplicate submitted identities or ambiguous existing matches reject the entire edit.","additionalProperties":false,"properties":{"products":{"description":"Desired product qualifiers. On a retained rate, match by product ID, quantity_rule and quantity_value; any ignores quantity_value when matching. Leave empty or omit the list to remove product qualification.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"enabled":{"description":"Whether the individual product qualifier is enabled.","type":"boolean"},"quantity_rule":{"description":"The quantity rule to apply for the individual product qualifier.","type":"string","enum":["any","equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["any"]},"quantity_value":{"description":"Nonnegative whole-number quantity to compare with quantity_rule. Must be at least 1 unless quantity_rule is any. For any, the value is ignored and zero is allowed.","type":"integer","minimum":0,"examples":[0]}},"required":["id","enabled","quantity_rule","quantity_value"],"allOf":[{"if":{"required":["quantity_rule"],"properties":{"quantity_rule":{"not":{"const":"any"}}}},"then":{"properties":{"quantity_value":{"minimum":1}}}}]}},"product_groups":{"description":"Desired product-group qualifiers. On a retained rate, match by product-group ID. Leave empty or omit the list to remove product-group qualification.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"A 20 character product group ID.","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"enabled":{"description":"Whether the individual product group qualifier is enabled.","type":"boolean"}},"required":["id","enabled"]}},"countries":{"description":"Desired destination-country qualifiers. On a retained rate, match by canonical country code. Reordering or enabled changes do not change the match. Leave empty or omit the list to remove country qualification.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"iso_code":{"type":"string","description":"A valid three-letter ISO 3166-1 alpha-3 country code. Leading and trailing whitespace is removed and letters are normalized to uppercase. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"description":"Whether the individual country qualifier is enabled.","type":"boolean"}},"required":["iso_code","enabled"]}},"revenue_rules":{"type":"array","description":"Desired revenue qualifiers. On a retained rate, match by source, rule and numeric rule_value together. Changing any of these creates a new qualifier; reordering or enabled changes do not change the match. Leave empty or omit the list to remove revenue qualification.","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean"},"source":{"description":"The source value, either the total amount of the associated purchase, the transaction amount of the associated purchase, or the total amount for shippable products in the transaction. This is used in combination with the rule and rule_value to determine if the rule passes or fails.","type":"string","enum":["total_amount","transaction_amount","shippable_products"],"examples":["total_amount"]},"rule":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["equal_to","greater_than","greater_than_equal_to","less_than","less_than_equal_to"],"examples":["equal_to"]},"rule_value":{"description":"The rule_value is compared to the source value using the specified rule to determine if the rule passes or fails.","type":"number","format":"float","minimum":0}},"required":["enabled","source","rule","rule_value"]}}}},"rate_id":{"type":"string","minLength":1,"description":"Exact, opaque identifier of an existing rate in this shipping profile. Optional: omission creates a new rate with creation defaults. Must identify exactly one existing rate and occur only once in the request; unknown, ambiguous or duplicate IDs reject the entire edit. Retained IDs remain unchanged through edits and reordering. Use the actual identifier, never a positional placeholder. id is not an alias. Historical rates without a usable identifier cannot be retained by inventing one; omit rates to leave them unchanged. Must contain at least one non-whitespace character.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["rate","provider","provider_method","qualifiers"]},"minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"shipping_profile_id":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/shipping_profiles/{shipping_profile_id}/delete":{"post":{"summary":"Delete A Shipping Profile","description":"Delete an existing shipping profile.","operationId":"DeleteShippingProfile","x-api-permission-description":"Allows the deletion of Shipping Profiles.","x-api-permission":"shipping_profile:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteShippingProfile.md","tags":["Shipping Profiles"],"parameters":[{"in":"path","name":"shipping_profile_id","description":"The shipping profile ID.","required":true,"schema":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"shipping_profile_id":{"type":"string","description":"A 20 character shipping profile ID.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO","WgnrjQXRq0u100B2JRRz"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_fulfillment_centers":{"get":{"summary":"Get Site Fulfillment Centers","description":"List available fulfillment-provider definitions and their configuration field descriptors. The complete catalog is returned in name-ascending order in one response. No query parameters are accepted.","operationId":"GetSiteFulfillmentCenters","x-api-permission-description":"Allows the retrieval of site fulfillment centers.","x-api-permission":"site_fulfillment_center:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteFulfillmentCenters.md","tags":["Fulfillment"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Available fulfillment-provider definitions and single-page result counts.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful catalog retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of fulfillment-provider definitions returned in results.","type":"integer","minimum":0,"examples":[10]},"current_page":{"description":"Always 1, including when no resources are returned.","type":"integer","const":1,"examples":[1]},"results":{"items":{"properties":{"id":{"description":"20 character RevCent ID of the fulfillment provider definition, used when configuring a Fulfillment Account.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"The available provider name; may be empty or omitted.","type":"string","examples":["ShipStation"]},"description":{"description":"The available provider description; may be empty or omitted.","type":"string","examples":["The ShipStation API."]},"required_fields":{"type":"array","description":"Configuration field descriptors for this provider, containing field keys, display labels and help text. Credential values are not returned. The array may be empty; descriptor order and duplicates are preserved.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Provider configuration field key, such as api_key. Use this key to identify the corresponding field when supplying account configuration. An empty value means the key is unavailable.","type":"string","examples":["api_key"]},"name":{"description":"The field's display label; may be empty.","type":"string","examples":["API Key"]},"description":{"description":"The field's help text; may be empty.","type":"string","examples":["Your ShipStation API Key, which can be found in your ShipStation account."]}}}}},"type":"object","additionalProperties":false},"type":"array","description":"The available fulfillment-provider catalog in name-ascending order, with deterministic ordering for equal names. May be empty; no page-size limit applies."},"total_count":{"description":"Number of fulfillment-provider definitions returned in results.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Always 1, including when no resources are returned.","type":"integer","const":1,"examples":[1]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_fulfillment_centers/{site_fulfillment_center_id}":{"get":{"summary":"Get A Site Fulfillment Center","description":"Retrieve an available fulfillment-provider definition and its configuration field descriptors for use when configuring a Fulfillment Account. No query parameters are accepted.","operationId":"GetSiteFulfillmentCenter","x-api-permission-description":"Allows the retrieval of site fulfillment centers.","x-api-permission":"site_fulfillment_center:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteFulfillmentCenter.md","tags":["Fulfillment"],"parameters":[{"in":"path","name":"site_fulfillment_center_id","description":"20 character RevCent ID of the fulfillment provider definition to retrieve. Obtain it from GetSiteFulfillmentCenters.","required":true,"schema":{"description":"20 character RevCent ID of the fulfillment provider definition.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested fulfillment-provider definition and its configuration field descriptors.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful provider-definition retrieval.","type":"integer","enum":[1],"examples":[1]},"id":{"description":"20 character RevCent ID of the requested fulfillment provider definition, used when configuring a Fulfillment Account.","type":"string","minLength":20,"maxLength":20,"examples":["P6kqro6pA5TKarJ8BX6n"]},"name":{"description":"The available provider name; may be empty or omitted.","type":"string","examples":["ShipStation"]},"description":{"description":"The available provider description; may be empty or omitted.","type":"string","examples":["The ShipStation API."]},"required_fields":{"type":"array","description":"Configuration field descriptors for this provider, containing field keys, display labels and help text. Credential values are not returned. The array may be empty; descriptor order and duplicates are preserved.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Provider configuration field key, such as api_key. Use this key to identify the corresponding field when supplying account configuration. An empty value means the key is unavailable.","type":"string","examples":["api_key"]},"name":{"description":"The field's display label; may be empty.","type":"string","examples":["API Key"]},"description":{"description":"The field's help text; may be empty.","type":"string","examples":["Your ShipStation API Key, which can be found in your ShipStation account."]}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_gateways":{"get":{"summary":"Get Site Gateways","description":"List available gateway-provider definitions and their configuration field descriptors for use when configuring User Gateways. The complete catalog is returned in name-ascending order in one response. No query parameters are accepted.","operationId":"GetSiteGateways","x-api-permission-description":"Allows the retrieval of site gateways.","x-api-permission":"site_gateway:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteGateways.md","tags":["Gateways"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Available gateway-provider definitions and single-page result counts.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful provider-catalog retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of gateway-provider definitions returned in results.","type":"integer","minimum":0,"examples":[10]},"current_page":{"description":"Always 1, including an empty catalog.","type":"integer","const":1,"examples":[1]},"results":{"items":{"properties":{"description":{"description":"The available provider description; may be empty or omitted.","type":"string","examples":["Authorize.net Merchant Gateway"]},"fields":{"description":"Configuration field descriptors for this provider, containing identifiers, display labels and help text. Credential values are not returned. The complete array retains its order and may be empty; individual descriptors may be empty or partial when information is unavailable.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Provider configuration field identifier, such as 1 or api_key. Preserve underscores when identifying the corresponding configuration field. Empty or historical text may be returned; an empty or omitted identifier does not identify a usable configuration field.","type":"string","examples":["1"]},"name":{"description":"The available display label for the configuration field; may be empty or omitted.","type":"string","examples":["API Login ID"]},"description":{"description":"Available help text for the configuration field; may be empty or omitted.","type":"string","examples":["Authorize.net API Login ID"]}}}},"id":{"description":"20 character RevCent ID of the gateway provider definition, used when configuring a User Gateway.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"description":"The available provider name; may be empty or omitted.","type":"string","examples":["Authorize.net"]}},"type":"object","additionalProperties":false},"type":"array","description":"Available gateway-provider definitions in name-ascending order, with deterministic ordering for equal names. May be empty; no page-size limit applies."},"total_count":{"description":"Number of gateway-provider definitions returned in results.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Always 1, including an empty catalog.","type":"integer","const":1,"examples":[1]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_gateways/{site_gateway_id}":{"get":{"summary":"Get A Site Gateway","description":"Retrieve an available gateway-provider definition and its configuration field descriptors for use when configuring a User Gateway. No query parameters are accepted.","operationId":"GetSiteGateway","x-api-permission-description":"Allows the retrieval of site gateways.","x-api-permission":"site_gateway:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteGateway.md","tags":["Gateways"],"parameters":[{"in":"path","name":"site_gateway_id","description":"20 character RevCent ID of the gateway provider definition to retrieve. Obtain it from GetSiteGateways.","required":true,"schema":{"description":"20 character RevCent ID of the gateway provider definition.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested gateway-provider definition and its configuration field descriptors.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful provider-definition retrieval.","type":"integer","enum":[1],"examples":[1]},"description":{"description":"The available provider description; may be empty or omitted.","type":"string","examples":["Authorize.net Merchant Gateway"]},"fields":{"description":"Configuration field descriptors for this provider, containing identifiers, display labels and help text. Credential values are not returned. The complete array retains its order and may be empty; individual descriptors may be empty or partial when information is unavailable.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Provider configuration field identifier, such as 1 or api_key. Preserve underscores when identifying the corresponding configuration field. Empty or historical text may be returned; an empty or omitted identifier does not identify a usable configuration field.","type":"string","examples":["1"]},"name":{"description":"The available display label for the configuration field; may be empty or omitted.","type":"string","examples":["API Login ID"]},"description":{"description":"Available help text for the configuration field; may be empty or omitted.","type":"string","examples":["Authorize.net API Login ID"]}}}},"id":{"description":"20 character RevCent ID of the requested gateway provider definition, used when configuring a User Gateway.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"description":"The available provider name; may be empty or omitted.","type":"string","examples":["Authorize.net"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_shops":{"get":{"summary":"Get Site Shops","description":"Retrieve the complete catalog of available third-party shop integrations and their configuration field definitions for creating or editing User Shops. No query parameters are accepted.","operationId":"GetSiteShops","x-api-permission-description":"Allows the retrieval of site shops.","x-api-permission":"site_shop:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteShops.md","tags":["Shops"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The complete available third-party shop integration catalog in one page.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful integration-catalog retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of returned integration definitions, equal to results.length.","minimum":0,"type":"integer","examples":[10]},"current_page":{"description":"Always 1, including an empty catalog.","const":1,"type":"integer","examples":[1]},"results":{"items":{"properties":{"description":{"description":"Available integration description or configuration help. May be empty or omitted.","type":"string","examples":["The WooCommerce shopping cart software."]},"id":{"description":"The integration definition's 20 character RevCent ID, used to identify the provider when configuring a User Shop.","type":"string","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"The integration's name. Empty and historical text may be returned.","type":"string","examples":["WooCommerce"]},"fields":{"description":"Configuration field definitions used to connect a User Shop. Credential values are not returned. May be empty; order and repeated keys are preserved.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact provider configuration key, not a RevCent resource ID. Empty and historical text may be returned.","type":"string","examples":["consumer_key","consumer_secret"]},"description":{"description":"The field's available display label or help text. May be empty.","type":"string","examples":["Consumer key.","Consumer secret."]},"required":{"description":"Provider metadata indicating whether this field is marked required; may be true, false or omitted. This flag alone does not permit omission from a credential submission. Follow the CreateUserShop or EditUserShop requirements.","type":"boolean","examples":[true]}}}}},"type":"object","additionalProperties":false},"type":"array","description":"Available integration definitions in name order, with stable ordering for equal names. May be empty; no page-size cap applies."},"total_count":{"description":"The number of returned integration definitions, equal to results.length.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Always 1, including an empty catalog.","const":1,"examples":[1],"type":"integer"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_shops/{site_shop_id}":{"get":{"summary":"Get A Site Shop","description":"Retrieve an available third-party shop integration and its configuration field definitions for creating or editing a User Shop. No query parameters are accepted.","operationId":"GetSiteShop","x-api-permission-description":"Allows the retrieval of site shops.","x-api-permission":"site_shop:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteShop.md","tags":["Shops"],"parameters":[{"in":"path","name":"site_shop_id","description":"20 character RevCent ID of the shop integration definition to retrieve. Obtain it from GetSiteShops.","required":true,"schema":{"description":"20 character RevCent ID of the shop integration definition.","type":"string","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested third-party shop integration definition and its configuration fields.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful integration-definition retrieval.","type":"integer","enum":[1],"examples":[1]},"description":{"description":"Available integration description or configuration help. May be empty or omitted.","type":"string","examples":["The WooCommerce shopping cart software."]},"id":{"description":"The requested integration definition's 20 character RevCent ID, obtained from GetSiteShops.","type":"string","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"The integration's name. Empty and historical text may be returned.","type":"string","examples":["WooCommerce"]},"fields":{"description":"Configuration field definitions used to connect a User Shop. Credential values are not returned. May be empty; order and repeated keys are preserved.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact provider configuration key, not a RevCent resource ID. Empty and historical text may be returned.","type":"string","examples":["consumer_key","consumer_secret"]},"description":{"description":"The field's available display label or help text. May be empty.","type":"string","examples":["Consumer key.","Consumer secret."]},"required":{"description":"Provider metadata indicating whether this field is marked required; may be true, false or omitted. This flag alone does not permit omission from a credential submission. Follow the CreateUserShop or EditUserShop requirements.","type":"boolean","examples":[true]}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_shipping_providers":{"get":{"summary":"Get Site Shipping Providers","description":"Retrieve the complete catalog of available shipping providers in one response. No query parameters are accepted. Use GetSiteShippingProvider to retrieve a provider’s domestic and international package options.","operationId":"GetSiteShippingProviders","x-api-permission-description":"Allows the retrieval of site shipping providers.","x-api-permission":"site_shipping_provider:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteShippingProviders.md","tags":["Shipping Providers"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The complete available shipping-provider catalog in one page.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful catalog retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of returned shipping providers, equal to results.length.","minimum":0,"type":"integer","examples":[10]},"current_page":{"description":"Always 1, including an empty catalog.","const":1,"type":"integer","examples":[1]},"results":{"items":{"properties":{"id":{"description":"The shipping provider's 20 character RevCent ID. Use this ID to identify the provider and retrieve its details.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"name":{"description":"The provider's display name. Empty and historical text may be returned.","type":"string","examples":["USPS"]},"name_lower":{"description":"Separate provider label, which may contain underscores, mixed case or empty text. It is not necessarily name converted to lowercase. Use id to identify the provider.","type":"string","examples":["usps"]}},"type":"object","additionalProperties":false},"type":"array","description":"Available shipping-provider summaries. May be empty; no page-size cap applies. Package options are available through GetSiteShippingProvider."},"total_count":{"description":"The number of returned shipping providers, equal to results.length.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Always 1, including an empty catalog.","const":1,"examples":[1],"type":"integer"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_shipping_providers/{site_shipping_provider_id}":{"get":{"summary":"Get A Site Shipping Provider","description":"Retrieve an available shipping provider and its domestic and international package options. No query parameters are accepted.","operationId":"GetSiteShippingProvider","x-api-permission-description":"Allows the retrieval of site shipping providers.","x-api-permission":"site_shipping_provider:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteShippingProvider.md","tags":["Shipping Providers"],"parameters":[{"in":"path","name":"site_shipping_provider_id","description":"20 character RevCent ID of the shipping provider to retrieve. Obtain it from GetSiteShippingProviders.","required":true,"schema":{"description":"20 character RevCent ID of the shipping provider.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested shipping provider and its domestic and international package options.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful provider retrieval.","type":"integer","enum":[1],"examples":[1]},"id":{"description":"The requested shipping provider's 20 character RevCent ID. Use this ID as provider identity.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"name":{"description":"The provider's display name. Empty and historical text may be returned.","type":"string","examples":["USPS"]},"name_lower":{"description":"Separate provider label, which may contain underscores, mixed case or empty text. It is not necessarily name converted to lowercase. Use id to identify the provider.","type":"string","examples":["usps"]},"domestic_package_options":{"description":"Domestic package options for this provider, ordered by display name. May be empty. Historical options may not be accepted for a new Shipping Profile configuration.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The package option's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"display_name":{"description":"The package option's display label; empty and historical text may be returned.","type":"string","examples":["Priority Mail"]},"identifier":{"description":"The option's separate provider identifier, distinct from its RevCent ID and display label. Empty and historical text may be returned.","type":"string","examples":["priority_mail"]}}}},"international_package_options":{"description":"International package options for this provider, ordered by display name. May be empty. Historical options may not be accepted for a new Shipping Profile configuration.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The package option's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"display_name":{"description":"The package option's display label; empty and historical text may be returned.","type":"string","examples":["Global Express Guaranteed"]},"identifier":{"description":"The option's separate provider identifier, distinct from its RevCent ID and display label. Empty and historical text may be returned.","type":"string","examples":["global_express_guaranteed"]}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_third_party_integrations":{"get":{"summary":"Get Site Third Party Integrations","description":"Retrieve the complete catalog of available third-party integrations and their configuration definitions for creating or editing User Third Party Integrations. These definitions describe providers, not connected accounts. No query parameters are accepted.","operationId":"GetSiteThirdPartyIntegrations","x-api-permission-description":"Allows the retrieval of site third party integrations.","x-api-permission":"site_third_party_integration:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteThirdPartyIntegrations.md","tags":["Third Party Integrations"],"parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The complete available third-party integration catalog in one page.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful catalog retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of returned integration definitions, equal to results.length.","minimum":0,"type":"integer","examples":[10]},"current_page":{"description":"Always 1, including an empty catalog.","const":1,"type":"integer","examples":[1]},"results":{"items":{"description":"An available provider's configuration definitions, not saved or submitted credentials or option values.","properties":{"id":{"description":"20 character RevCent ID of the third-party integration definition.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The provider display name; may be empty.","type":"string","examples":["OpenAI"]},"description":{"description":"Available provider description. May be empty or omitted.","type":"string","examples":["The OpenAI API."]},"integration_type":{"description":"The integration's purpose: ai for AI features, ai_voice for voice features, offline_payment for alternate payments, tax for tax calculation, or shipping for shipment tracking.","type":"string","enum":["ai","ai_voice","offline_payment","tax","shipping"],"examples":["ai"]},"third_party_credentials":{"type":"object","description":"Credential configuration definitions, not credential values. Unavailable definitions return empty labels and an empty fields array.","additionalProperties":false,"properties":{"id":{"description":"The exact credential-group configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["openai_api"]},"name":{"description":"The credential group's display name; may be empty.","type":"string","examples":["OpenAI Credentials"]},"description":{"description":"Credential-group help text; may be empty.","type":"string","examples":["Your OpenAI credentials required for RevCent to connect."]},"fields":{"type":"array","description":"Credential field definitions in their available order, not saved or submitted values. May be empty and may contain repeated keys.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact credential field configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["api_key"]},"name":{"description":"The credential field's display label; may be empty.","type":"string","examples":["API Key"]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements."}}}}}},"third_party_options":{"type":"array","description":"Available option configuration groups, not saved values. Configure options through EditUserThirdPartyIntegration after credentials are established. May be empty; groups and fields retain their available order and may repeat.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact option-group configuration key, not a RevCent resource ID. May be empty or omitted.","type":"string","examples":["openai_model"]},"name":{"description":"Available option-group display name; may be empty or omitted.","type":"string","examples":["Model"]},"description":{"description":"Available option-group help text; may be empty or omitted.","type":"string","examples":["Select the OpenAI model to use for this integration."]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements."},"fields":{"type":"array","description":"Available input or select configuration field definitions, not submitted values. May be empty.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact option field configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["openai_model_selector"]},"name":{"description":"The option field's display label; may be empty.","type":"string","examples":["OpenAI Model"]},"field_type":{"description":"input accepts a supplied value; select uses static choices or provider-specific dynamic choices described by select_settings.","type":"string","enum":["select","input"],"examples":["select","input"]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements.","examples":[true]},"select_settings":{"type":"object","description":"Available settings for a select field. May be omitted when unavailable.","additionalProperties":false,"properties":{"third_party_asset":{"type":"boolean","description":"True indicates dynamic provider choices. This catalog returns an empty options array for dynamic choices, which does not establish that the connected account has none. Choices may be available through GetUserThirdPartyIntegration after credentials are configured, subject to provider support and successful retrieval.","examples":[true]},"options":{"type":"array","description":"Available static choice strings when third_party_asset is false; may be empty and may contain repeated values. Dynamic choices are not included in this catalog.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"multiple":{"type":"boolean","description":"Whether the selector permits multiple choices; false when unavailable.","examples":[false]}}}}}}}}}},"type":"object","additionalProperties":false},"type":"array","description":"Available integration definitions in name order, with stable ordering for equal names. May be empty; no page-size cap applies."},"total_count":{"description":"The number of returned integration definitions, equal to results.length.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"Always 1, including an empty catalog.","const":1,"examples":[1],"type":"integer"}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_third_party_integrations/{site_third_party_integration_id}":{"get":{"summary":"Get A Site Third Party Integration","description":"Retrieve an available third-party integration definition and its credential and option configuration fields for creating or editing a User Third Party Integration. No query parameters are accepted.","operationId":"GetSiteThirdPartyIntegration","x-api-permission-description":"Allows the retrieval of site third party integrations.","x-api-permission":"site_third_party_integration:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSiteThirdPartyIntegration.md","tags":["Third Party Integrations"],"parameters":[{"in":"path","name":"site_third_party_integration_id","description":"20 character RevCent ID of the integration definition to retrieve. Obtain it from GetSiteThirdPartyIntegrations.","required":true,"schema":{"description":"20 character RevCent ID of the third-party integration definition.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested third-party integration definition and its configuration fields.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful provider-definition retrieval.","type":"integer","enum":[1],"examples":[1]},"id":{"description":"20 character RevCent ID of the requested integration definition. Obtain it from GetSiteThirdPartyIntegrations.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The provider display name; may be empty.","type":"string","examples":["OpenAI"]},"description":{"description":"Available provider description. May be empty or omitted.","type":"string","examples":["The OpenAI API."]},"integration_type":{"description":"The integration's purpose: ai for AI features, ai_voice for voice features, offline_payment for alternate payments, tax for tax calculation, or shipping for shipment tracking.","type":"string","enum":["ai","ai_voice","offline_payment","tax","shipping"],"examples":["ai"]},"third_party_credentials":{"type":"object","description":"Credential configuration definitions, not credential values. Unavailable definitions return empty labels and an empty fields array.","additionalProperties":false,"properties":{"id":{"description":"The exact credential-group configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["openai_api"]},"name":{"description":"The credential group's display name; may be empty.","type":"string","examples":["OpenAI Credentials"]},"description":{"description":"Credential-group help text; may be empty.","type":"string","examples":["Your OpenAI credentials required for RevCent to connect."]},"fields":{"type":"array","description":"Credential field definitions in their available order, not saved or submitted values. May be empty and may contain repeated keys.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact credential field configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["api_key"]},"name":{"description":"The credential field's display label; may be empty.","type":"string","examples":["API Key"]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements."}}}}}},"third_party_options":{"type":"array","description":"Available option configuration groups, not saved values. Configure options through EditUserThirdPartyIntegration after credentials are established. May be empty; groups and fields retain their available order and may repeat.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact option-group configuration key, not a RevCent resource ID. May be empty or omitted.","type":"string","examples":["openai_model"]},"name":{"description":"Available option-group display name; may be empty or omitted.","type":"string","examples":["Model"]},"description":{"description":"Available option-group help text; may be empty or omitted.","type":"string","examples":["Select the OpenAI model to use for this integration."]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements."},"fields":{"type":"array","description":"Available input or select configuration field definitions, not submitted values. May be empty.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The exact option field configuration key, not a RevCent resource ID. May be empty when unavailable.","type":"string","examples":["openai_model_selector"]},"name":{"description":"The option field's display label; may be empty.","type":"string","examples":["OpenAI Model"]},"field_type":{"description":"input accepts a supplied value; select uses static choices or provider-specific dynamic choices described by select_settings.","type":"string","enum":["select","input"],"examples":["select","input"]},"required":{"type":"boolean","description":"Configuration requirement indicator, currently returned as true. This flag alone does not determine which fields must be submitted. Follow the CreateUserThirdPartyIntegration and EditUserThirdPartyIntegration requirements.","examples":[true]},"select_settings":{"type":"object","description":"Available settings for a select field. May be omitted when unavailable.","additionalProperties":false,"properties":{"third_party_asset":{"type":"boolean","description":"True indicates dynamic provider choices. This provider definition returns an empty options array for dynamic choices, which does not establish that the connected account has none. Choices may be available through GetUserThirdPartyIntegration after credentials are configured, subject to provider support and successful retrieval.","examples":[true]},"options":{"type":"array","description":"Available static choice strings when third_party_asset is false; may be empty and may contain repeated values. Dynamic choices are not included in this provider definition.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"multiple":{"type":"boolean","description":"Whether the selector permits multiple choices; false when unavailable.","examples":[false]}}}}}}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sites":{"get":{"summary":"Get Sites","description":"Retrieve available sites for your account, newest first, including configuration and deployment details. Only limit and page query parameters are accepted; both are required.","operationId":"GetSites","x-api-permission-description":"Allows the retrieval of sites.","x-api-permission":"site:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/GetSites.md","tags":["Sites"],"parameters":[{"description":"Required number of sites per page, from 1 to 25. No default is applied when omitted.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Zero selects page 1. A page beyond the last result returns an empty results array. Only pages through 20 can be requested even when total_pages is higher.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of available sites and their configuration and deployment details.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of sites returned on this page, at most limit. Empty catalogs and pages beyond the last result return zero.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The requested page after normalizing zero to one. Requests above page 20 are rejected.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"A site's configuration and available deployment information. Unavailable related summaries and deployment scalar values are null unless a field states a fallback.","additionalProperties":false,"properties":{"created_date_unix":{"description":"Site creation time in Unix seconds. Zero is the Unix epoch; negative values precede it.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The site's 20 character RevCent ID. Use with GetSite for individual retrieval.","type":"string","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"name":{"description":"The site name; may be empty.","type":"string","examples":["My Shopping Cart"]},"description":{"description":"The site's description; may be empty.","type":"string","examples":["My shopping cart site."]},"campaign":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured campaign summary, or null when unavailable.","properties":{"id":{"description":"The campaign's 20 character RevCent ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The campaign's name; may be empty.","type":"string","examples":["MyStore Campaign"]}}},"paypal_account":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured PayPal account summary, or null when unavailable.","properties":{"id":{"description":"The PayPal account's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The PayPal account's name; may be empty.","type":"string","examples":["My PayPal Account"]}}},"payment_profile":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured Payment Profile summary, or null when unavailable.","properties":{"id":{"description":"The Payment Profile's 20 character RevCent ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"The Payment Profile's name; may be empty.","type":"string","examples":["My Payment Profile"]}}},"product_group":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured product group summary, or null when unavailable.","properties":{"id":{"description":"The product group's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"description":"The product group's name; may be empty.","type":"string","examples":["My Store Product Group"]}}},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured tracking domain summary, or null when unavailable. Use AddTrackingDomainToSite to associate a custom domain with the main/live branch.","properties":{"id":{"description":"The tracking domain's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"The tracking domain's name; may be empty.","type":"string","examples":["MyStore Domain"]},"domain":{"description":"The available domain name; omitted when unavailable.","type":"string","examples":["mystore.com"]}}},"github_repo":{"description":"The site's GitHub repository URL, or null when unavailable.","type":["string","null"],"examples":["https://github.com/RevCentSites/revcent-site-*"]},"collaborators":{"type":"array","description":"GitHub collaborator usernames associated with the site. The list may be empty; a returned username does not confirm current repository access.","items":{"type":"string","description":"A saved GitHub collaborator username; historical values are preserved.","examples":["AValidGitHubUser"]}},"deployment":{"type":"object","additionalProperties":false,"description":"Available deployment, branch, routing and product-catalog information. Deployment completion and active public routing are separate states.","properties":{"status":{"description":"Overall site status, or null when unavailable. Known values include ready (idle), provisioning (initial setup), updating (a change is underway), deleting (removal underway), deleted (removal recorded), and recovery_required (attention needed). Historical and future strings are preserved; this value alone does not guarantee an edit will be accepted.","type":["string","null"],"examples":["ready"]},"health":{"description":"Reported deployment health, or null when unavailable. Known values include healthy, degraded (a change failed while an earlier deployment remains), unavailable (a successful deployment is unavailable), and unknown. Other strings are preserved.","type":["string","null"],"examples":["healthy"]},"branches":{"type":"object","additionalProperties":false,"description":"Deployment information for the main/live and dev GitHub branches. Each branch can have a different deployment and routing state.","properties":{"main":{"type":"object","additionalProperties":false,"description":"Available main/live branch information.","properties":{"status":{"description":"Branch deployment status, separate from routing. Known values include building, packaging, artifact_verifying (preparing a release), deployment_queued (waiting to deploy), stack_deploying and assets_mirroring (deployment underway), deployed (deployment completed), build_failed, deployment_failed, deleting and deleted. Historical and future strings are preserved; null when unavailable.","type":["string","null"],"examples":["deployed"]},"commit":{"type":"object","additionalProperties":false,"description":"Available GitHub commits for the current deployment, a change in progress and a queued change.","properties":{"current":{"type":"object","additionalProperties":false,"description":"Available commit for the current deployment; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_process":{"type":"object","additionalProperties":false,"description":"Available commit for the change in progress; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_queue":{"type":"object","additionalProperties":false,"description":"Available commit for the queued change; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}}}},"routing":{"type":"object","additionalProperties":false,"description":"Public-routing information, separate from branch deployment completion.","properties":{"status":{"description":"Public-routing status. Known values include active, not_configured, updating, failed, deleting and deleted; other strings are preserved. Defaults to not_configured when unavailable.","type":["string","null"],"examples":["active"]},"a_record_ip":{"description":"Available A-record IP address for the associated custom domain's DNS, or null. Active routing still requires the domain's DNS to point to the supplied address.","type":["string","null"],"examples":["192.0.2.1"]}}}}},"dev":{"type":"object","additionalProperties":false,"description":"Available development branch information.","properties":{"status":{"description":"Branch deployment status, separate from routing. Known values include building, packaging, artifact_verifying (preparing a release), deployment_queued (waiting to deploy), stack_deploying and assets_mirroring (deployment underway), deployed (deployment completed), build_failed, deployment_failed, deleting and deleted. Historical and future strings are preserved; null when unavailable.","type":["string","null"],"examples":["deployed"]},"commit":{"type":"object","additionalProperties":false,"description":"Available GitHub commits for the current deployment, a change in progress and a queued change.","properties":{"current":{"type":"object","additionalProperties":false,"description":"Available commit for the current deployment; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_process":{"type":"object","additionalProperties":false,"description":"Available commit for the change in progress; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_queue":{"type":"object","additionalProperties":false,"description":"Available commit for the queued change; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}}}},"routing":{"type":"object","additionalProperties":false,"description":"Public-routing information, separate from branch deployment completion.","properties":{"status":{"description":"Public-routing status. Known values include active, not_configured, updating, failed, deleting and deleted; other strings are preserved. Null when unavailable.","type":["string","null"],"examples":["active"]},"url":{"description":"Development HTTPS URL when routing is active and a development subdomain is available; otherwise null.","type":["string","null"],"examples":["https://sitesubdomain.revcent.site"]}}}}}}},"catalog":{"type":"object","additionalProperties":false,"description":"Available information about the site's generated product catalog.","properties":{"last_generated":{"description":"Catalog generation time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"status":{"description":"Catalog status, or null when unavailable. Known values include publishing (being prepared), ready (available), deferred (waiting for site availability), and failed. Historical and future strings are preserved.","type":["string","null"],"examples":["ready"]},"product_count":{"description":"Number of products in the generated catalog. Returns zero when a valid count is unavailable.","type":"integer","minimum":0,"examples":[10]}}}}},"updated_date_unix":{"description":"Site update time in Unix seconds. Zero is the Unix epoch; negative values precede it.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available sites in descending creation order, with stable ordering for equal creation times. May be empty, including beyond the last page."},"total_count":{"description":"The total number of available matching sites for the account.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero when no sites are available. May exceed 20 even though only pages through 20 can be requested.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Site","description":"Create a site, which will issue a unique site ID.","operationId":"CreateSite","x-api-permission-description":"Allows the creation of a new site.","x-api-permission":"site:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/CreateSite.md","tags":["Sites"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The site name. Must be unique from other site names.","examples":["My Shopping Cart"]},"description":{"type":"string","description":"The site description.","examples":["This is my shopping cart site."]},"paypal_account":{"type":"string","description":"A 20 character PayPal account ID. The PayPal account will be used to process PayPal sales for the site. Only necessary if the site accepts PayPal payments.","minLength":20,"maxLength":20,"examples":["kGObAPS6pK51EXbP1Ov9"]},"payment_profile":{"type":"string","description":"A 20 character payment profile ID. The payment profile will be used to process credit card sales for the site.","minLength":20,"maxLength":20,"examples":["P1Ov9kGObAPS6pK51EXb"]},"product_group":{"type":"string","description":"A 20 character product group ID. The product group will be used as the catalog source for products which will be sold on the site.","minLength":20,"maxLength":20,"examples":["1ObAPS6pK51EXbPv9kGO"]},"collaborators":{"type":"array","description":"A list of valid GitHub usernames that are allowed as collaborators to the site repository on GitHub. Provide all collaborators that should have access to the site repository. At least one collaborator is required when creating a site.","items":{"type":"string","description":"An individual GitHub username that should be included as a collaborator.","examples":["AValidGitHubUser"]},"minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","payment_profile","product_group","collaborators"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"site_id":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"result":{"type":"string","examples":["Site created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sites/{site_id}":{"get":{"summary":"Get A Site","description":"Retrieve a site belonging to your account, including its configuration and available deployment details. No query parameters are accepted.","operationId":"GetSite","x-api-permission-description":"Allows the retrieval of sites.","x-api-permission":"site:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/GetSite.md","tags":["Sites"],"parameters":[{"in":"path","name":"site_id","description":"20 character RevCent ID of the site to retrieve. Obtain it from GetSites.","required":true,"schema":{"description":"20 character RevCent ID of the site.","type":"string","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested site and its available configuration and deployment details.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful site retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Site creation time in Unix seconds. Zero is the Unix epoch; negative values precede it.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested site. Obtain it from GetSites.","type":"string","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"name":{"description":"The site name; may be empty.","type":"string","examples":["My Shopping Cart"]},"description":{"description":"The site's description; may be empty.","type":"string","examples":["My shopping cart site."]},"campaign":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured campaign summary, or null when unavailable.","properties":{"id":{"description":"The campaign's 20 character RevCent ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"The campaign's name; may be empty.","type":"string","examples":["MyStore Campaign"]}}},"paypal_account":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured PayPal account summary, or null when unavailable.","properties":{"id":{"description":"The PayPal account's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["mJVWkmzVz0i42j0GEVK4","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The PayPal account's name; may be empty.","type":"string","examples":["My PayPal Account"]}}},"payment_profile":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured Payment Profile summary, or null when unavailable.","properties":{"id":{"description":"The Payment Profile's 20 character RevCent ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"description":"The Payment Profile's name; may be empty.","type":"string","examples":["My Payment Profile"]}}},"product_group":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured product group summary, or null when unavailable.","properties":{"id":{"description":"The product group's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["2rE2p5PAnnHYjGp42yEK","1RARvv2d5EFNNd1M0oBE"]},"name":{"description":"The product group's name; may be empty.","type":"string","examples":["My Store Product Group"]}}},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"The site's configured tracking domain summary, or null when unavailable. Use AddTrackingDomainToSite to associate a custom domain with the main/live branch.","properties":{"id":{"description":"The tracking domain's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"The tracking domain's name; may be empty.","type":"string","examples":["MyStore Domain"]},"domain":{"description":"The available domain name; omitted when unavailable.","type":"string","examples":["mystore.com"]}}},"github_repo":{"description":"The site's GitHub repository URL, or null when unavailable.","type":["string","null"],"examples":["https://github.com/RevCentSites/revcent-site-*"]},"collaborators":{"type":"array","description":"GitHub collaborator usernames associated with the site. The list may be empty; a returned username does not confirm current repository access.","items":{"type":"string","description":"A saved GitHub collaborator username; historical values are preserved.","examples":["AValidGitHubUser"]}},"deployment":{"type":"object","additionalProperties":false,"description":"Available deployment, branch, routing and product-catalog information. Deployment completion and active public routing are separate states.","properties":{"status":{"description":"Overall site status, or null when unavailable. Known values include ready (idle), provisioning (initial setup), updating (a change is underway), deleting (removal underway), deleted (removal recorded), and recovery_required (attention needed). Historical and future strings are preserved; this value alone does not guarantee an edit will be accepted.","type":["string","null"],"examples":["ready"]},"health":{"description":"Reported deployment health, or null when unavailable. Known values include healthy, degraded (a change failed while an earlier deployment remains), unavailable (a successful deployment is unavailable), and unknown. Other strings are preserved.","type":["string","null"],"examples":["healthy"]},"branches":{"type":"object","additionalProperties":false,"description":"Deployment information for the main/live and dev GitHub branches. Each branch can have a different deployment and routing state.","properties":{"main":{"type":"object","additionalProperties":false,"description":"Available main/live branch information.","properties":{"status":{"description":"Branch deployment status, separate from routing. Known values include building, packaging, artifact_verifying (preparing a release), deployment_queued (waiting to deploy), stack_deploying and assets_mirroring (deployment underway), deployed (deployment completed), build_failed, deployment_failed, deleting and deleted. Historical and future strings are preserved; null when unavailable.","type":["string","null"],"examples":["deployed"]},"commit":{"type":"object","additionalProperties":false,"description":"Available GitHub commits for the current deployment, a change in progress and a queued change.","properties":{"current":{"type":"object","additionalProperties":false,"description":"Available commit for the current deployment; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_process":{"type":"object","additionalProperties":false,"description":"Available commit for the change in progress; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_queue":{"type":"object","additionalProperties":false,"description":"Available commit for the queued change; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}}}},"routing":{"type":"object","additionalProperties":false,"description":"Public-routing information, separate from branch deployment completion.","properties":{"status":{"description":"Public-routing status. Known values include active, not_configured, updating, failed, deleting and deleted; other strings are preserved. Defaults to not_configured when unavailable.","type":["string","null"],"examples":["active"]},"a_record_ip":{"description":"Available A-record IP address for the associated custom domain's DNS, or null. Active routing still requires the domain's DNS to point to the supplied address.","type":["string","null"],"examples":["192.0.2.1"]}}}}},"dev":{"type":"object","additionalProperties":false,"description":"Available development branch information.","properties":{"status":{"description":"Branch deployment status, separate from routing. Known values include building, packaging, artifact_verifying (preparing a release), deployment_queued (waiting to deploy), stack_deploying and assets_mirroring (deployment underway), deployed (deployment completed), build_failed, deployment_failed, deleting and deleted. Historical and future strings are preserved; null when unavailable.","type":["string","null"],"examples":["deployed"]},"commit":{"type":"object","additionalProperties":false,"description":"Available GitHub commits for the current deployment, a change in progress and a queued change.","properties":{"current":{"type":"object","additionalProperties":false,"description":"Available commit for the current deployment; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_process":{"type":"object","additionalProperties":false,"description":"Available commit for the change in progress; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}},"in_queue":{"type":"object","additionalProperties":false,"description":"Available commit for the queued change; its fields may be null.","properties":{"date":{"description":"Commit time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"sha":{"description":"Available GitHub commit SHA, or null when unavailable.","type":["string","null"],"examples":["a1b2c3d4e5f6g7h8i9j0"]}}}}},"routing":{"type":"object","additionalProperties":false,"description":"Public-routing information, separate from branch deployment completion.","properties":{"status":{"description":"Public-routing status. Known values include active, not_configured, updating, failed, deleting and deleted; other strings are preserved. Null when unavailable.","type":["string","null"],"examples":["active"]},"url":{"description":"Development HTTPS URL when routing is active and a development subdomain is available; otherwise null.","type":["string","null"],"examples":["https://sitesubdomain.revcent.site"]}}}}}}},"catalog":{"type":"object","additionalProperties":false,"description":"Available information about the site's generated product catalog.","properties":{"last_generated":{"description":"Catalog generation time in UTC ISO 8601 format, or null when unavailable.","type":["string","null"],"format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"status":{"description":"Catalog status, or null when unavailable. Known values include publishing (being prepared), ready (available), deferred (waiting for site availability), and failed. Historical and future strings are preserved.","type":["string","null"],"examples":["ready"]},"product_count":{"description":"Number of products in the generated catalog. Returns zero when a valid count is unavailable.","type":"integer","minimum":0,"examples":[10]}}}}},"updated_date_unix":{"description":"Site update time in Unix seconds. Zero is the Unix epoch; negative values precede it.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Site","description":"Edit a previously created site using the site ID. Only include the properties you wish to modify.","operationId":"EditSite","x-api-permission-description":"Allows the editing of an existing site.","x-api-permission":"site:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/EditSite.md","tags":["Sites"],"parameters":[{"in":"path","name":"site_id","description":"The Site ID","required":true,"schema":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Site name. Must be unique from other Site names.","examples":["Example"]},"description":{"type":"string","description":"The Site description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"paypal_account":{"type":["string","null"],"description":"A 20 character PayPal account ID. The PayPal account will be used to process PayPal sales for the site. Only necessary if the site accepts PayPal payments. Send null to remove this association.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile":{"type":"string","description":"A 20 character payment profile ID. The payment profile will be used to process credit card sales for the site.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"product_group":{"type":"string","description":"A 20 character product group ID. The product group will be used as the catalog source for products which will be sold on the site.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"collaborators":{"type":"array","description":"A list of all valid GitHub usernames that are allowed as collaborators to the site repository on GitHub. Provide all collaborators that should have access to the site repository, as this will replace the existing collaborators allowed for sites' GitHub repository. If a collaborator is not included in the list, but was previously, they will no longer have access to the site repository. At least one collaborator is required.","items":{"type":"string","description":"An individual GitHub username that should be included as a collaborator.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"minItems":1},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"site_id":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sites/{site_id}/add_tracking_domain":{"post":{"summary":"Add Tracking Domain to Site","description":"Add a tracking domain to a specific site using the Site ID and a tracking domain ID. Adding a tracking domain to a site will allow the domain to access the main/live deployment via the a_record_ip in the routing object.","operationId":"AddTrackingDomainToSite","x-api-permission-description":"Allows adding a tracking domain to a specific Site.","x-api-permission":"site:add_tracking_domain","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/AddTrackingDomainToSite.md","tags":["Sites"],"parameters":[{"in":"path","name":"site_id","description":"The Site ID","required":true,"schema":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"tracking_domain":{"type":"string","description":"A 20 character tracking domain ID. The tracking domain must have SSL and DNS successfully configured before it can be added to a site. The tracking domain cannot be in use by another site. The tracking domain ID can be retrieved from the GetTrackingDomains operation.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["tracking_domain"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"site_id":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sites/{site_id}/remove_tracking_domain":{"post":{"summary":"Remove Tracking Domain from Site","description":"Remove a tracking domain from a specific site using the Site ID and remove path. Removing a tracking domain from a site will prevent a custom domain from accessing the main/live deployment.","operationId":"RemoveTrackingDomainFromSite","x-api-permission-description":"Allows the removal of a tracking domain from a specific Site.","x-api-permission":"site:remove_tracking_domain","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/RemoveTrackingDomainFromSite.md","tags":["Sites"],"parameters":[{"in":"path","name":"site_id","description":"The Site ID","required":true,"schema":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"site_id":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"result":{"type":"string","examples":["Tracking domain removed from site."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/sites/{site_id}/delete":{"post":{"summary":"Delete A Site","description":"Delete a specific site using the Site ID and delete path. This action is irreversible and will remove all data, routing and content associated with the site.","operationId":"DeleteSite","x-api-permission-description":"Allows the deletion of a specific Site.","x-api-permission":"site:delete","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/DeleteSite.md","tags":["Sites"],"parameters":[{"in":"path","name":"site_id","description":"The Site ID","required":true,"schema":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"site_id":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"result":{"type":"string","examples":["Site deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_events":{"get":{"summary":"Get Site Events","description":"List site events, such as deployments and catalog updates, newest first within a date range. Optionally limit results to selected sites.","operationId":"GetSiteEvents","x-api-permission-description":"Allows the retrieval of site events.","x-api-permission":"site_event:retrieve","x-ai-options":["mcp"],"x-additional-info":"The date_start, date_end, page and limit URL parameters are required. The maximum elapsed date range is 90 days; exactly 90 days is accepted.","x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/GetSiteEvents.md","tags":["Sites"],"parameters":[{"description":"Required inclusive start of the event creation range, in Unix seconds. The elapsed range may be at most 90 days, including exactly 90 days. Equal start and end values return an empty range. If repeated, the last effective value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required exclusive end of the event creation range, in Unix seconds. Must be at or after date_start and no more than 90 days later. If repeated, the last effective value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of events per page, from 1 to 25. There is no default when omitted. If repeated, the last effective value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. If repeated, the last effective value is used. total_pages may exceed 20; narrow the date range or site filter to reach other matching events.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Optional site selection: repeat this parameter to supply up to 50 unique site IDs. Each is a 20 character RevCent ID. Returns events associated with any selected site within the date range. Duplicate IDs and empty entries are ignored; omitting the filter applies no site restriction.","name":"site_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Site events and pagination information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful event retrieval, not the success of the event's operation.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of events returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"The returned page number. A request for page 0 returns page 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"An event associated with a site, such as a deployment or catalog update.","additionalProperties":false,"properties":{"created_date_unix":{"description":"Event creation time in Unix seconds; zero represents the Unix epoch.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the site event.","type":"string","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"trigger":{"description":"The reported reason for the event, such as github_push or catalog_sync. Other values and empty text may be returned; omitted when unavailable.","type":"string","examples":["site_create","catalog_sync"]},"site":{"type":["object","null"],"additionalProperties":false,"description":"Available ID and name of the associated site, or null when the site is unavailable. The event is still returned when its site is unavailable.","properties":{"id":{"description":"20 character RevCent ID of the associated site.","type":"string","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"name":{"description":"The available site name; may be empty.","type":"string","examples":["My Shopping Cart"]}}},"branch":{"description":"The applicable main or dev branch. Omitted when no recognized branch is reported.","type":"string","enum":["main","dev"],"examples":["main","dev"]},"sha":{"type":"string","description":"The available nonempty Git commit SHA for a github_push event; otherwise omitted.","examples":["e2e6f8c9d1b2a3c4"]},"product_count":{"type":"integer","description":"Number of products in the catalog prepared for the event, including zero. Does not indicate how many deployments or product updates succeeded. Omitted when a valid count is unavailable.","minimum":0,"examples":[10]},"status":{"description":"Reported event status, such as started, succeeded, failed or deferred; other values may be returned. Describes the event rather than the success of this retrieval request. Omitted when unavailable.","type":"string","examples":["succeeded","started","deployed","queued"]},"updated_date_unix":{"description":"Event update time in Unix seconds; zero represents the Unix epoch.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available site events in descending creation-time order, with deterministic ordering for ties. May be empty."},"total_count":{"description":"The total number of available events matching the supplied date range and optional site_filter.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"The total count divided by the required limit, rounded up. May exceed 20 even though only pages through 20 are accessible; narrow the date range or site filter to access other matching events.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/site_logs":{"get":{"summary":"Get Site Logs","description":"Retrieve application log messages for one RevCent Site branch, newest first.","operationId":"GetSiteLogs","x-api-permission-description":"Allows the retrieval of site logs.","x-api-permission":"site_log:retrieve","x-ai-options":["mcp"],"x-additional-info":"All six query parameters are required. Supply exactly one site and branch and a date range of at most 30 elapsed days. Counts and entries may reflect different moments as logs change. Repeated date_start, date_end, limit and page parameters use the last supplied value; a blank final value is invalid.","x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/GetSiteLogs.md","tags":["Sites"],"parameters":[{"description":"Inclusive start of the log date range, as a nonnegative Unix timestamp in seconds. Must be at or before date_end; equal endpoints are allowed.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Inclusive end of the log date range, as a nonnegative Unix timestamp in seconds. Must be at or after date_start and no more than 30 elapsed days (2,592,000 seconds) later.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required maximum number of log entries per page, from 1 to 25. There is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. Only pages 1 through 20 are accessible. Narrow the date range when more pages are reported.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Exactly one 20 character RevCent ID of the site whose logs you want to retrieve. Repeated values are not accepted, even when identical.","name":"site_filter","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","description":"A 20 character site ID.","minLength":20,"maxLength":20,"examples":["qOV2gJ6ncazb1aKq1EbO"]},"maxItems":1,"minItems":1},"style":"form","explode":true},{"description":"Exactly one branch of the selected site: main or dev. Repeated values are not accepted, even when identical.","name":"site_branch_filter","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","description":"The branch name of the RevCent Site for which you want to retrieve logs. Must be one of the following values: 'main' or 'dev'.","enum":["main","dev"],"examples":["main","dev"]},"maxItems":1,"minItems":1},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Log entries for the selected site, branch and date range, with pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful log retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"The number of returned log entries, which may be below limit.","minimum":0,"maximum":25,"type":"integer","examples":[10]},"current_page":{"description":"The requested page; submitted page 0 selects page 1. Only pages 1–20 are accessible.","minimum":1,"maximum":20,"type":"integer","examples":[1]},"results":{"items":{"type":"object","description":"A log entry with its timestamp, correlation identifier and message.","additionalProperties":false,"properties":{"timestamp":{"description":"Timezone-qualified RFC3339 timestamp of the log entry. Available offsets and fractional seconds are preserved.","type":"string","format":"date-time","examples":["2021-08-03T23:59:59-04:00"]},"id":{"type":"string","description":"Opaque correlation identifier, not a unique log-entry ID or a RevCent resource ID. It may be empty, and multiple entries may share it.","examples":["629afee1e2e6"]},"entry":{"description":"Log message text, including its original whitespace and line breaks.","type":"string","examples":["RevCent site catalog updated."]}}},"type":"array","maxItems":25,"description":"Up to limit log entries, ordered newest first. Pages may be short or empty as logs change."},"total_count":{"description":"The reported number of matching log entries for the selected site, branch and inclusive date range. Counts and page entries are not guaranteed to represent the same moment.","minimum":0,"type":"integer","examples":[28]},"total_pages":{"description":"total_count divided by the required limit, rounded up. May exceed 20, although only pages through 20 are accessible; narrow the date range if needed. Zero when total_count is zero.","minimum":0,"type":"integer","examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/smtp_messages":{"get":{"summary":"Get SMTP Messages","description":"Retrieve SMTP message summaries in newest-first creation order. Use GetSMTPMessage for sender and recipient addresses, subject and HTML content.","operationId":"GetSMTPMessages","x-api-permission-description":"Allows the retrieval of SMTP Messages.","x-api-permission":"smtp_message:retrieve","x-ai-options":["mcp"],"x-additional-info":"date_start, date_end, page and limit are required. The date span must be shorter than 95 days. Supplying customer_id replaces date filtering, but the dates are still required and validated. Different filters combine with AND; values within one filter combine with OR. Repeat filter parameters to supply multiple values; duplicates are ignored, and values are not trimmed or comma-separated.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSMTPMessages.md","tags":["SMTP Messages"],"parameters":[{"description":"Required start of the creation-time interval, inclusive, as a Unix timestamp in seconds. Must not exceed date_end; the span must be shorter than 95 days. With customer_id, dates remain required and validated but do not restrict results. The first repeated value is used.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required end of the creation-time interval, exclusive, as a Unix timestamp in seconds. Equal start and end return no matches unless customer_id replaces date filtering. The first repeated value is used.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of results per page, from 1 to 25. There is no default when omitted. The last repeated value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. A page beyond the available results returns an empty array. total_pages may exceed 20. The last repeated value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by up to 50 distinct SMTP profile IDs. Each is a 20 character RevCent ID; matching any supplied profile is sufficient.","name":"smtp_profile_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct email template IDs. Each is a 20 character RevCent ID; matching any supplied template is sufficient.","name":"email_template_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Email Template ID","description":"A 20 character Email Template ID.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct trigger identifiers. Each is a nonempty string of at most 255 characters. Values match exactly; there is no fixed enum.","name":"smtp_trigger_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"style":"form","explode":true},{"description":"Filter by recorded message outcome: success matches 1 and error matches 0. Supply either or both. Other historical numeric outcomes can appear only when this filter is omitted.","name":"smtp_message_result_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["success","error"],"examples":["success","error"]}},"style":"form","explode":true},{"description":"20 character RevCent ID of the customer whose messages to retrieve. Accepts one distinct ID. Replaces date filtering; date_start and date_end remain required and validated. Other filters still apply.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of SMTP message summaries and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, independently of each message outcome.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of returned message summaries.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero normalized to one. Only pages through 20 are accessible.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Message-record creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The SMTP message's 20 character RevCent ID; use it with GetSMTPMessage for content and details.","type":"string","title":"SMTP Message ID","minLength":20,"maxLength":20,"examples":["jYgVl6LpyGsPEZd11pvW"]},"email_template":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the Email Template.","type":"string","title":"Email Template ID","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"name":{"type":"string","description":"The name of the Email Template.","examples":["My Email Template"]}},"type":["object","null"],"description":"Available Email Template summary, or null when unavailable or unusable."},"smtp_profile":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the SMTP Profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"type":"string","description":"The name of the SMTP Profile.","examples":["My SMTP Profile"]}},"type":["object","null"],"description":"Available SMTP Profile summary, or null when unavailable or unusable."},"customer":{"type":["object","null"],"description":"Available customer summary, or null when unavailable or unusable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country, normally an ISO 3 country code. Historical country text may also be returned.","examples":["USA"]},"email":{"type":"string","description":"Customer email address; historical text may also be returned.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"Customer phone number.","examples":["1234567890"]},"state":{"type":"string","description":"Customer state or province.","examples":["DC"]},"zip":{"type":"string","description":"Customer ZIP or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when the customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text and order. Duplicate pairs may be returned; this list may be incomplete.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when the customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"Customer status, separate from the message outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"updated_date_unix":{"description":"Message-record update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related product sales exist.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related tax exist.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related discounts exist.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related transactions exist.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related ai threads exist.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related paypal transactions exist.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related offline payments exist.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related check directs exist.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related salvage transactions exist.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related pending refunds exist.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related chargebacks exist.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related fraud detections exist.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related api calls exist.","maxItems":50},"message_result_code":{"description":"Recorded message outcome: current messages use 1 for success and 0 for failure. Historical finite numeric values may also be returned unchanged. This is separate from the root retrieval code and is not an SMTP protocol response code.","type":"number","examples":[0]},"trigger_identifier":{"description":"Available identifier of the trigger associated with the message; historical and empty strings may be returned.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array","maxItems":25,"description":"Available message summaries in newest-first order. An empty array is returned when there are no matches or the page is beyond the results."},"total_count":{"description":"Number of available messages matching all applied filters. Date filtering is replaced by customer_id when supplied.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero for no matches. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Send A SMTP Message","description":"Send an SMTP message using an Email Template ID and optional custom arguments determined by the Email Template used.","operationId":"SendSMTPMessage","x-api-permission-description":"Allows sending of SMTP messages.","x-api-permission":"smtp_message:send","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SendSMTPMessage.md","tags":["SMTP Messages"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"email_template_id":{"type":"string","description":"A 20 character Email Template ID which will be used to send the SMTP message.","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"to":{"description":"An optional array of email addresses that the SMTP message should send to. An Email Template may already have pre-defined recipients, which will not be overwritten and will be de-duplicated.","type":"array","items":{"type":"string","description":"An individual email address that should be included in the 'to' recipient list.","examples":["customer@gmail.com"]}},"cc":{"description":"An optional array of CC email addresses that the SMTP message should send to. An Email Template may already have pre-defined cc recipients, which will not be overwritten and will be de-duplicated.","type":"array","items":{"type":"string","description":"An individual email address that should be included in the 'cc' recipient list.","examples":["fulfillment@mystore.com"]}},"bcc":{"description":"An optional array of BCC email addresses that the SMTP message should send to. An Email Template may already have pre-defined bcc recipients, which will not be overwritten and will be de-duplicated.","type":"array","items":{"type":"string","description":"An individual email address that should be included in the 'bcc' recipient list.","examples":["accounting@mystore.com"]}},"item_type":{"type":"string","description":"If the SMTP message is in reference to, or during the processing of an specific item, specify the item_type.","examples":["sale"],"enum":["sale","customer","product_sale","shipping","subscription","subscription_renewal","salvage_transaction","transaction","chargeback","fraud_detection"]},"item_id":{"type":"string","description":"If the SMTP message is in reference to, or during the processing of specific item, provide the ID of the item corresponding to the item_type.","minLength":20,"maxLength":20,"examples":["pgm1q7yjKjF7qyAM7EXK"]},"custom_arguments":{"description":"An array of custom arguments, specific to the Email Template being triggered if the Email Template has a non-empty custom_arguments array.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The name of the custom argument, which should be the name within the custom_arguments array from the source Email Template.","type":"string","examples":["thank_you_paragraph"]},"value":{"description":"The value of the custom argument.","type":"string","examples":["Generate a customized thank you paragraph based on the customers name."]}}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["email_template_id"]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"smtp_message_id":{"type":"string","title":"SMTP Message ID","description":"A 20 character SMTP Message ID.","minLength":20,"maxLength":20,"examples":["jYgVl6LpyGsPEZd11pvW"]},"result":{"type":"string","examples":["SMTP message sent."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"The message could not be sent. No message ID is available.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"type":"integer","const":0,"examples":[0]},"result":{"type":"string","const":"Error occurred sending SMTP message.","examples":["Error occurred sending SMTP message."]},"smtp_message_id":{"type":"string","const":"","examples":[""]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/smtp_messages/{smtp_message_id}":{"get":{"summary":"Get A SMTP Message","description":"Retrieve an SMTP message, including its sender, recipients, subject, HTML content and available related summaries. Successful retrieval does not confirm delivery. No query parameters are accepted.","operationId":"GetSMTPMessage","x-api-permission-description":"Allows the retrieving of SMTP messages.","x-api-permission":"smtp_message:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSMTPMessage.md","tags":["SMTP Messages"],"parameters":[{"in":"path","name":"smtp_message_id","description":"20 character RevCent ID of the SMTP message to retrieve. Obtain it from GetSMTPMessages.","required":true,"schema":{"description":"20 character RevCent ID of the SMTP message.","type":"string","title":"SMTP Message ID","minLength":20,"maxLength":20,"examples":["jYgVl6LpyGsPEZd11pvW"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested SMTP message, its content and available related summaries.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, independently of each message outcome.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Message-record creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested SMTP message.","type":"string","title":"SMTP Message ID","minLength":20,"maxLength":20,"examples":["jYgVl6LpyGsPEZd11pvW"]},"from":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Available sender name, otherwise an empty string.","examples":["My Store"]},"address":{"type":"string","description":"Available sender address text, otherwise an empty string.","examples":["support@mystore.com"]}},"type":"object","description":"Message sender name and address; unavailable values are empty strings."},"to":{"description":"To recipient addresses in their original order. May include duplicate, empty or historical text values; returns an empty array when unavailable.","type":"array","items":{"type":"string","description":"A recipient address; historical or empty text may be returned.","examples":["customer@gmail.com"]}},"cc":{"description":"CC recipient addresses in their original order. May include duplicate, empty or historical text values; returns an empty array when unavailable.","type":"array","items":{"type":"string","description":"A recipient address; historical or empty text may be returned.","examples":["fulfillment@mystore.com"]}},"bcc":{"description":"BCC recipient addresses in their original order. May include duplicate, empty or historical text values; returns an empty array when unavailable.","type":"array","items":{"type":"string","description":"A recipient address; historical or empty text may be returned.","examples":["accounting@mystore.com"]}},"subject":{"type":"string","description":"Available message subject, including empty or historical text; otherwise an empty string.","examples":["Thank You For Purchasing"]},"html":{"type":"string","description":"Message HTML, returned in full, or an empty string when unavailable.","examples":["<p>Thanks for buying our product.</p>"]},"email_template":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the Email Template.","type":"string","title":"Email Template ID","minLength":20,"maxLength":20,"examples":["Q4vj0drE55FJb1XNmgL4"]},"name":{"type":"string","description":"The name of the Email Template.","examples":["My Email Template"]}},"type":["object","null"],"description":"Available Email Template summary, or null when unavailable or unusable."},"smtp_profile":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the SMTP Profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"type":"string","description":"The name of the SMTP Profile.","examples":["My SMTP Profile"]}},"type":["object","null"],"description":"Available SMTP Profile summary, or null when unavailable or unusable."},"customer":{"type":["object","null"],"description":"Available customer summary, or null when unavailable or unusable.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Customer country, normally an ISO 3 country code. Historical country text may also be returned.","examples":["USA"]},"email":{"type":"string","description":"Customer email address; historical text may also be returned.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own reference for the customer.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"Customer phone number.","examples":["1234567890"]},"state":{"type":"string","description":"Customer state or province.","examples":["DC"]},"zip":{"type":"string","description":"Customer ZIP or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when the customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text and order. Duplicate pairs may be returned; this list may be incomplete.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when the customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"Customer status, separate from the message outcome.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"updated_date_unix":{"description":"Message-record update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each sale_id using the GetSale operation.","maxItems":50},"product_sales":{"items":{"description":"20 character RevCent ID of the product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related product sales exist.","maxItems":50},"shipping":{"items":{"description":"20 character RevCent ID of the shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each shipping_id using the GetShipment operation.","maxItems":50},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related tax exist.","maxItems":50},"discounts":{"items":{"description":"20 character RevCent ID of the discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related discounts exist.","maxItems":50},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each trial_id using the GetTrial operation.","maxItems":50},"subscriptions":{"items":{"description":"20 character RevCent ID of the subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each subscription_id using the GetSubscription operation.","maxItems":50},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each subscription_renewal_id using the GetSubscriptionRenewal operation.","maxItems":50},"transactions":{"items":{"description":"20 character RevCent ID of the transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related transactions exist.","maxItems":50},"ai_threads":{"items":{"description":"20 character RevCent ID of the AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related ai threads exist.","maxItems":50},"ai_assistants":{"items":{"description":"20 character RevCent ID of the AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Available directly associated IDs, at most 50; this is not a complete relationship history. Retrieve the details of each ai_assistant_id using the GetAIAssistant operation.","maxItems":50},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related paypal transactions exist.","maxItems":50},"offline_payments":{"items":{"description":"20 character RevCent ID of the offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related offline payments exist.","maxItems":50},"check_directs":{"items":{"description":"20 character RevCent ID of the check direct.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related check directs exist.","maxItems":50},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related salvage transactions exist.","maxItems":50},"pending_refunds":{"items":{"description":"20 character RevCent ID of the pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related pending refunds exist.","maxItems":50},"chargebacks":{"items":{"description":"20 character RevCent ID of the chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related chargebacks exist.","maxItems":50},"fraud_detections":{"items":{"description":"20 character RevCent ID of the fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related fraud detections exist.","maxItems":50},"api_calls":{"items":{"description":"20 character RevCent ID of the API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Currently returns an empty array; this does not establish that no related api calls exist.","maxItems":50},"message_result_code":{"description":"Recorded message outcome: current messages use 1 for success and 0 for failure. Historical finite numeric values may also be returned unchanged. This is separate from the root retrieval code and is not an SMTP protocol response code.","type":"number","examples":[0]},"trigger_identifier":{"description":"Available identifier of the trigger associated with the message; historical and empty strings may be returned.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/smtp_profiles":{"get":{"summary":"Get SMTP Profiles","description":"Retrieve available SMTP profile configurations in newest-first creation order. Only limit and page are accepted. Returned settings do not confirm successful connectivity or delivery.","operationId":"GetSMTPProfiles","x-api-permission-description":"Allows the retrieving of SMTP profiles.","x-api-permission":"smtp_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSMTPProfiles.md","tags":["SMTP Profiles"],"parameters":[{"description":"Required number of results per page, from 1 to 25. There is no default when omitted. Repeated values use the last value.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. A page beyond the available results returns an empty array. total_pages may exceed 20. Repeated values use the last value.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of available SMTP profile configurations and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of profiles returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero normalized to one. Only pages through 20 are accessible.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the SMTP profile. Use it with GetSMTPProfile for individual retrieval.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"Profile name; may be empty. Omitted when unavailable.","type":"string","examples":["My SMTP Profile"]},"description":{"description":"Profile description; may be empty. Omitted when unavailable.","type":"string","examples":["The SMTP profile used for sending transactional emails."]},"enabled":{"description":"Whether the SMTP profile is enabled. Omitted when unavailable.","type":"boolean","examples":[true]},"host":{"description":"Configured SMTP server hostname or address. May be empty or null; omitted when unavailable.","type":["string","null"],"examples":["smtp.mystore.com"]},"port":{"description":"Configured SMTP server port, as an integer or null. Historical integer values are preserved; omitted when unavailable.","type":["integer","null"],"examples":[587]},"use_ssl":{"description":"Whether the profile is configured to use SSL. Omitted when unavailable.","type":"boolean","examples":[true]},"require_tls":{"description":"Whether the profile is configured to require TLS. Omitted when unavailable.","type":"boolean","examples":[true]},"auth":{"type":"object","additionalProperties":false,"description":"SMTP authentication username and password placeholder.","properties":{"user":{"description":"Configured SMTP authentication username. May be empty or null; omitted when unavailable.","type":["string","null"],"examples":["smtp_user"]},"pass":{"description":"Fixed eight-asterisk placeholder. The actual password is never returned; this mask does not confirm that usable credentials are configured.","type":"string","const":"********","examples":["********"]}}},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available SMTP Profile configurations in newest-first order. Empty when there are no matches or the requested page is beyond the results."},"total_count":{"description":"Number of available matching SMTP Profiles, including profiles beyond the requested page.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero when there are no matches. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A SMTP Profile","description":"Create an SMTP profile with authentication credentials.","operationId":"CreateSMTPProfile","x-api-permission-description":"Allows the creation of SMTP profiles.","x-api-permission":"smtp_profile:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/smtp/smtp-profile","x-kb-name":"SMTP Profiles","x-md-link":"markdown/mcp/operation/CreateSMTPProfile.md","tags":["SMTP Profiles"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The SMTP profile name.","type":"string","examples":["Example"]},"description":{"description":"The SMTP profile description.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the SMTP profile is currently enabled.","type":"boolean"},"host":{"description":"The SMTP profile host.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"port":{"description":"The SMTP profile port.","type":"integer","minimum":1,"maximum":65535,"examples":[1]},"use_ssl":{"description":"Whether the SMTP profile uses SSL.","type":"boolean"},"require_tls":{"description":"Whether the SMTP profile requires TLS.","type":"boolean"},"auth":{"type":"object","additionalProperties":false,"description":"SMTP authentication credentials. Supply auth or a completed secure_form_id when creating the profile. Unauthenticated SMTP profiles are not supported. If both are supplied, the secure form provides the authentication credentials.","properties":{"user":{"description":"The SMTP profile auth user.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"pass":{"description":"The password used to authenticate with the SMTP service. Must contain a non-whitespace character. The supplied value is preserved exactly, including leading and trailing whitespace.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["user","pass"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials. Required when auth is omitted. If both are supplied, the secure form provides the authentication credentials. SMTP passwords must contain a non-whitespace character and are preserved exactly, including leading and trailing whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name","host","port"],"anyOf":[{"required":["auth"]},{"required":["secure_form_id"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"smtp_profile_id":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/smtp_profiles/{smtp_profile_id}":{"get":{"summary":"Get A SMTP Profile","description":"Retrieve an SMTP profile configuration. Returned settings do not confirm successful connectivity or delivery. No query parameters are accepted.","operationId":"GetSMTPProfile","x-api-permission-description":"Allows the retrieving of SMTP profiles.","x-api-permission":"smtp_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSMTPProfile.md","tags":["SMTP Profiles"],"parameters":[{"in":"path","name":"smtp_profile_id","description":"20 character RevCent ID of the SMTP profile to retrieve. Obtain it from GetSMTPProfiles.","required":true,"schema":{"description":"20 character RevCent ID of the SMTP profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested SMTP profile configuration.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested SMTP profile.","type":"string","title":"SMTP Profile ID","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"name":{"description":"Profile name; may be empty. Omitted when unavailable.","type":"string","examples":["My SMTP Profile"]},"description":{"description":"Profile description; may be empty. Omitted when unavailable.","type":"string","examples":["The SMTP profile used for sending transactional emails."]},"enabled":{"description":"Whether the SMTP profile is enabled. Omitted when unavailable.","type":"boolean","examples":[true]},"host":{"description":"Configured SMTP server hostname or address. May be empty or null; omitted when unavailable.","type":["string","null"],"examples":["smtp.mystore.com"]},"port":{"description":"Configured SMTP server port, as an integer or null. Historical integer values are preserved; omitted when unavailable.","type":["integer","null"],"examples":[587]},"use_ssl":{"description":"Whether the profile is configured to use SSL. Omitted when unavailable.","type":"boolean","examples":[true]},"require_tls":{"description":"Whether the profile is configured to require TLS. Omitted when unavailable.","type":"boolean","examples":[true]},"auth":{"type":"object","additionalProperties":false,"description":"SMTP authentication username and password placeholder.","properties":{"user":{"description":"Configured SMTP authentication username. May be empty or null; omitted when unavailable.","type":["string","null"],"examples":["smtp_user"]},"pass":{"description":"Fixed eight-asterisk placeholder. The actual password is never returned; this mask does not confirm that usable credentials are configured.","type":"string","const":"********","examples":["********"]}}},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A SMTP Profile","description":"Edit a specific SMTP profile using the smtp_profile ID. Only supplied fields are updated.","operationId":"EditSMTPProfile","x-api-permission-description":"Allows the editing of SMTP profiles.","x-api-permission":"smtp_profile:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditSMTPProfile.md","tags":["SMTP Profiles"],"parameters":[{"in":"path","name":"smtp_profile_id","description":"The SMTP profile ID.","required":true,"schema":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The SMTP profile name.","type":"string","examples":["Example"]},"description":{"description":"The SMTP profile description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the SMTP profile is currently enabled.","type":"boolean"},"host":{"description":"The SMTP profile host.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"port":{"description":"The SMTP profile port.","type":"integer","minimum":1,"maximum":65535,"examples":[1]},"use_ssl":{"description":"Whether the SMTP profile uses SSL.","type":"boolean"},"require_tls":{"description":"Whether the SMTP profile requires TLS.","type":"boolean"},"auth":{"type":"object","additionalProperties":false,"description":"The SMTP profile auth settings.","properties":{"user":{"description":"The SMTP profile auth user.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"pass":{"description":"The password used to authenticate with the SMTP service. Must contain a non-whitespace character. The supplied value is preserved exactly, including leading and trailing whitespace.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["user","pass"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials. SMTP passwords must contain a non-whitespace character and are preserved exactly, including leading and trailing whitespace.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"smtp_profile_id":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/smtp_profiles/{smtp_profile_id}/delete":{"post":{"summary":"Delete A SMTP Profile","description":"Delete an existing SMTP profile.","operationId":"DeleteSmtpProfile","x-api-permission-description":"Allows the deletion of SMTP profiles.","x-api-permission":"smtp_profile:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteSmtpProfile.md","tags":["SMTP Profiles"],"parameters":[{"in":"path","name":"smtp_profile_id","description":"The SMTP profile ID.","required":true,"schema":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"smtp_profile_id":{"type":"string","title":"SMTP Profile ID","description":"A 20 character SMTP Profile ID.","minLength":20,"maxLength":20,"examples":["LY4o2550jwcbXW6GjZnJ"]},"result":{"type":"string","examples":["SMTP Profile deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions":{"get":{"summary":"Get Subscriptions","description":"Retrieve subscription summaries in newest-first order, including lifecycle status, billing information and available related resources.","operationId":"GetSubscriptions","x-api-permission-description":"Allows the retrieving of subscriptions.","x-api-permission":"subscription:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date span must be strictly shorter than 9,900 days unless customer_id is supplied; customer_id does not remove the date requirement or date filtering.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSubscriptions.md","x-ai-q":"Tell me how subscriptions work in RevCent and how they can help my ecommerce business manage recurring revenue effectively.","tags":["Subscriptions"],"parameters":[{"description":"Required inclusive start of the subscription creation-date range, as a nonnegative Unix timestamp in seconds. Must not exceed date_end; equal endpoints return an empty interval. Repeated values use the last value.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required exclusive end of the subscription creation-date range, as a nonnegative Unix timestamp in seconds. The span must be strictly shorter than 9,900 days unless customer_id is supplied. Repeated values use the last value.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of subscriptions per page, from 1 to 25; there is no default when omitted. Repeated values use the last value.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. Repeated values use the last value. Narrow the date range or filters when more than 20 pages match.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated campaign resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct, case-sensitive payment-type values supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"payment_type_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated product resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"product_filter","in":"query","required":false,"schema":{"type":"array","items":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated subscription profile resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"subscription_profile_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct, case-sensitive values supplied as repeated parameters. All values within this filter use OR, including active, trial, overdue, occurrence_limit, suspended, cancelled, fraud, chargeback, expired and replaced. Different filters use AND. trial selects eligible trials whose start date has not passed. Filter values do not directly match every returned display status.","name":"status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["active","trial","overdue","occurrence_limit","suspended","expired","replaced","cancelled","fraud","chargeback"],"examples":["active","suspended"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs, supplied as repeated JSON objects or bracketed name/value parameters. Names contain 1–100 characters and values 1–255. Values for the same name are alternatives; different names must all match. METADATA_NAME_EXISTS selects name presence regardless of value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose subscriptions to retrieve. Accepts one distinct ID. Removes only the date-span ceiling; date_start and date_end remain required and still filter results.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of subscription summaries and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not a successful subscription payment.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of subscriptions returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero selecting page one. Requests above page 20 are rejected.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"Subscription summaries. Monetary values use major currency units; do not assume a denomination when currency is unavailable. Historical signed amounts and whole-number quantities are preserved.","additionalProperties":false,"properties":{"id":{"description":"The subscription's 20 character RevCent ID, for GetSubscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"created_date_unix":{"description":"Subscription creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Subscription update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"amount":{"description":"Subscription amount in major units of iso_currency, rounded to two decimals. Omitted when unavailable or invalid; historical negative values are retained.","type":"number","format":"float","examples":[49.99]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving saved case. Omitted when unavailable or unrecognized; no USD or other currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Available live-mode flag for the subscription; omitted when unavailable.","type":"boolean","examples":[true]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID, returned with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned with campaign_id.","examples":["AdWords Campaign"]},"is_active":{"description":"Available active setting, independently of display status. True when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[true]},"num_overdue":{"description":"Available overdue count; zero when unavailable. Historical whole-number values are retained; invalid values are omitted.","type":"integer","examples":[0]},"has_replacement":{"description":"Available flag that a replacement exists; false when unavailable. The replacement link can still be unavailable.","type":"boolean","examples":[false]},"is_replacement":{"description":"Available flag that this subscription replaces an earlier subscription; false when unavailable.","type":"boolean","examples":[false]},"is_suspended":{"description":"Available suspended setting, independently of display status. False when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_cancelled":{"description":"Available cancelled setting, independently of display status. False when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_overdue":{"description":"Available overdue setting, independently of display status. False when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_occurrence_limit":{"description":"Whether renewal occurrences block further billing. A finite limit is reached using all available associated renewals, independently of the returned renewal IDs; an unusable finite-limit setting also blocks billing.","type":"boolean","examples":[false]},"status":{"description":"Subscription display status, distinct from lifecycle flags and status_filter choices. Occurrence restrictions can yield Occurrence Limit or Occurrence Error; qualifying fraud or chargebacks can override the display. Historical status text is preserved; unavailable text returns Error.","type":"string","examples":["Active","Overdue","Suspended","Cancelled","Occurrence Limit","Replaced"]},"subscription_start_date_unix":{"description":"Available subscription start time in Unix seconds, or null when unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"subscription_replaced":{"type":["object","null"],"description":"The earlier subscription that this subscription replaces, as an ID-only object; null when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the earlier subscription replaced by this subscription.","examples":["WmPnWqPKbpFRmy6Ma2BG"]}}},"subscription_replaced_with":{"type":["object","null"],"description":"The replacement subscription that supersedes this subscription, as an ID-only object; null when unavailable.","additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the replacement that supersedes this subscription.","examples":["WmPnWqPKbpFRmy6Ma2BG"]}}},"metadata":{"items":{"type":"object","description":"A metadata entry.","additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}}},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates.","maxItems":50},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable. Optional historical text is preserved.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"email":{"type":"string","description":"Available customer email text, including historical values.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"Available customer phone number, using its international form when available.","examples":["1234567890"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"metadata":{"items":{"type":"object","description":"A metadata entry.","additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}}},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates.","maxItems":50},"status":{"type":"string","description":"Customer status, independently of subscription status: Chargeback precedes Fraud Detected, Blocked, Disabled and Enabled.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"payment_type":{"type":["object","null"],"description":"Recognized ID/name pair for Credit Card, PayPal, Offline Payment or Check; null when unavailable or unrecognized.","additionalProperties":false,"properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"third_party_shop":{"description":"Available associated User Shop ID/name summary, or null.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":["object","null"]},"product":{"type":"object","description":"Required available product summary. Purchase quantities and prices may be omitted when unavailable; product-sale information is not required for the subscription to be returned.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["AV 2017"]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["av_2017101"]},"sku":{"type":"string","description":"The product SKU.","examples":["av_2017"]},"price":{"description":"Available purchase price in major currency units, retaining its numeric precision; omitted when unavailable or invalid.","type":"number","format":"float","examples":[49.99]},"quantity":{"description":"Available historical safe-integer product quantity, including zero and negative values; omitted when invalid.","type":"integer","examples":[1]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[true]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"list_price":{"type":"number","description":"Available list price for the purchase in major currency units, retaining its numeric precision; omitted when unavailable or invalid.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."}}},"billing":{"type":"object","description":"Billing information with independently nullable dates, last-renewal identity and amount. Availability does not guarantee a future successful payment.","additionalProperties":false,"properties":{"next_renewal_date_unix":{"description":"Available next renewal time in Unix seconds; null when expired, occurrence-blocked or the date is unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1713892753]},"last_renewal_date_unix":{"description":"Available linked last-renewal creation time in Unix seconds; null when the renewal identity or date is unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"last_renewal_id":{"description":"Linked last renewal's 20 character RevCent ID for GetSubscriptionRenewal; null when unavailable. This link does not guarantee global recency.","type":["string","null"],"minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"last_renewal_amount":{"type":["number","null"],"description":"Linked last renewal's total in that renewal's currency, matching GetSubscriptionRenewal.amount and amount_total with two-decimal rounding. Missing/null totals return zero for an available renewal; invalid totals or an unavailable renewal return null. Retrieve the renewal for its available currency; do not infer it from this amount.","examples":[0]}}},"subscription_profile":{"type":"object","description":"Available subscription schedule summary. Historical settings are preserved; optional text/numbers can be omitted, and frequency_unit, frequency_value and occurrences_value may be null.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Saved occurrence setting. Indefinite does not impose an occurrence limit; other settings require a usable nonnegative whole-number occurrences_value.","type":"string","examples":["indefinite","specific"]},"occurrences_value":{"description":"Saved renewal occurrence limit, or null. Zero blocks further occurrences; invalid/unavailable finite-limit settings yield Occurrence Error. Historical whole numbers are returned without rounding.","type":["integer","null"],"examples":[2]},"frequency_unit":{"type":["string","null"],"description":"Available interval unit, such as days or months; historical text and null are preserved.","examples":["months"]},"frequency_value":{"type":["number","null"],"description":"Available interval value used with frequency_unit; finite historical precision and null are preserved.","examples":[3]}}},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten distinct available related sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten distinct available related product sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to ten distinct available related trial IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to ten distinct available related subscription renewal IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Selected by renewal creation time, newest first within the returned subset.","maxItems":10,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the related transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten distinct available related transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Includes available transaction links from the selected renewals, preserving association order.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten distinct available related salvage transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"is_expired":{"type":"boolean","description":"Available expiration flag; false when unavailable. This flag suppresses the next renewal date without independently rewriting the display status."},"expired_date_unix":{"type":["integer","null"],"description":"Available expiration time in Unix seconds when is_expired is true; otherwise null. Null also indicates an unavailable or unusable date.","format":"unix-time","examples":[1893499200]}}},"type":"array","maxItems":25,"description":"Available subscriptions in newest-first creation order; empty when no records match or the page is beyond the results."},"total_count":{"description":"Number of available subscriptions matching the date range and all applicable filters.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by the required limit, rounded up; zero when no subscriptions match. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/{subscription_id}":{"get":{"summary":"Get A Subscription","description":"Retrieve one subscription, including lifecycle status, billing information, product details and renewal schedules.","operationId":"GetSubscription","x-api-permission-description":"Allows the retrieving of subscriptions.","x-api-permission":"subscription:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSubscription.md","x-ai-q":"Tell me how subscriptions work in RevCent and how they can help my ecommerce business manage recurring revenue effectively.","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"20 character RevCent ID of the subscription to retrieve, available from GetSubscriptions. This operation accepts no query parameters.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","description":"Subscription details and available related resources.","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not a successful subscription payment.","type":"integer","enum":[1],"examples":[1]},"id":{"description":"The requested subscription's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"created_date_unix":{"description":"Subscription creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Subscription update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"amount":{"description":"Subscription amount in major units of iso_currency, rounded to two decimals. Historical signed values are retained; unavailable or invalid values are omitted.","type":"number","format":"float","examples":[49.99]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving saved case. Omitted when unavailable or unrecognized; no USD or other currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the subscription is in live mode rather than test mode; omitted when unavailable.","type":"boolean","examples":[true]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID, returned with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned with campaign_id.","examples":["AdWords Campaign"]},"is_active":{"description":"Available active flag, independently of display status. True when not provided; invalid nonboolean values are omitted.","type":"boolean","examples":[true]},"num_overdue":{"description":"Available overdue count; zero when not provided. Historical whole-number values are retained; invalid values are omitted.","type":"integer","examples":[0]},"has_replacement":{"description":"Available flag that a replacement exists; false when not provided. Its identity can still be unavailable.","type":"boolean","examples":[false]},"is_replacement":{"description":"Available flag that this subscription replaces an earlier subscription; false when not provided.","type":"boolean","examples":[false]},"is_suspended":{"description":"Available suspended flag, independently of display status. False when not provided; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_cancelled":{"description":"Available cancelled flag, independently of display status. False when not provided; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_overdue":{"description":"Available overdue flag, independently of display status. False when not provided; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"is_occurrence_limit":{"description":"Whether the occurrence limit or an unusable occurrence setting blocks further renewals. The renewal history used for this flag is not limited to the returned subscription_renewals IDs.","type":"boolean","examples":[false]},"status":{"description":"Subscription display status, separate from customer status and lifecycle flags. Values include Active, Trial, Occurrence Limit, Occurrence Error, Fraud Detected and Chargeback; historical text is also returned. Error is returned when status text is unavailable.","type":"string","examples":["Active","Overdue","Suspended","Cancelled","Occurrence Limit","Replaced"]},"subscription_start_date_unix":{"description":"Available subscription start time in Unix seconds, or null when unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"subscription_replaced":{"description":"The earlier subscription that this subscription replaces: a 20 character RevCent ID string, or null when unavailable.","type":["string","null"],"minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_replaced_with":{"description":"The replacement subscription that supersedes this subscription: a 20 character RevCent ID string, or null when unavailable.","type":["string","null"],"minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"future_renewal_dates":{"description":"Up to three available planned renewal times in Unix seconds. These dates can coexist with expiration or Fraud Detected/Chargeback display status and do not guarantee future charges.","type":"array","items":{"type":"integer","format":"unix-time","examples":[1706030353]},"maxItems":3},"metadata":{"items":{"type":"object","description":"A metadata entry.","additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}}},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates; not necessarily the complete collection.","maxItems":50},"ship_to":{"type":["object","null"],"description":"Available delivery address, or null when unavailable. Individual unavailable or invalid fields are omitted; historical email text is retained.","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available email text, including historical values.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"customer":{"type":"object","description":"Available customer summary, omitted when unavailable or unusable. Optional historical text is preserved.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"email":{"type":"string","description":"Available email text, including historical values.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"Available customer phone number, using its international form when available.","examples":["1234567890"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"metadata":{"items":{"type":"object","description":"A metadata entry.","additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}}},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates; not necessarily the complete collection.","maxItems":50},"status":{"type":"string","description":"Customer status: Enabled, Disabled, Blocked, Fraud Detected or Chargeback. This describes the customer independently of the subscription status.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"payment_type":{"type":["object","null"],"description":"Recognized ID/name pair for Credit Card, PayPal, Offline Payment or Check; null when unavailable or unrecognized.","additionalProperties":false,"properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"third_party_shop":{"description":"Available associated User Shop ID/name summary; omitted when unavailable or unusable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":"object"},"product":{"type":"object","description":"Available product and purchased-product information. Optional amounts and text are omitted when unavailable or invalid; historical signed amounts and whole-number quantities are preserved.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["AV 2017"]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["av_2017101"]},"sku":{"type":"string","description":"The product SKU.","examples":["av_2017"]},"price":{"description":"Purchased unit price in major currency units, rounded to two decimals; not the extended quantity total.","type":"number","format":"float","examples":[49.99]},"quantity":{"description":"Available historical whole-number purchased quantity, including zero and negative values; omitted when invalid.","type":"integer","examples":[1]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[true]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"description":{"type":"string","description":"The product description.","examples":["Example description"]},"list_price":{"type":"number","description":"Available purchased product list price in major currency units, rounded to two decimals.","examples":[0]},"uuid":{"type":"string","description":"UUID identifying the purchased product, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"type":"string","description":"Product URL, when available.","examples":["https://example.com"]},"total_amount":{"type":"number","description":"Extended amount for the purchased quantity in major currency units, rounded to two decimals; omitted when the unit price, quantity or resulting total is invalid.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."}}},"billing":{"type":"object","description":"Billing information with independently nullable dates, last-renewal identity and amount. Availability does not guarantee a successful future payment.","additionalProperties":false,"properties":{"next_renewal_date_unix":{"description":"Available next renewal time in Unix seconds; null when expired, occurrence-blocked or the date is unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1713892753]},"last_renewal_date_unix":{"description":"Available linked last-renewal creation time in Unix seconds; null when its identity or date is unavailable or unusable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"last_renewal_id":{"description":"Linked last renewal's 20 character RevCent ID for GetSubscriptionRenewal, or null when unavailable. This link does not guarantee global recency.","type":["string","null"],"minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"last_renewal_amount":{"type":["number","null"],"description":"Linked last renewal's total in that renewal's currency, matching GetSubscriptionRenewal.amount and amount_total with two-decimal rounding. Missing/null totals return zero for an available renewal; invalid totals or an unavailable renewal return null. Retrieve the renewal for its available currency; do not infer its denomination from the subscription.","examples":[0]}}},"subscription_profile":{"type":"object","description":"Available subscription schedule configuration. Structured schedules may be null or partial; historical text and whole-number settings are preserved without implying current billing availability.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Occurrence setting: indefinite has no occurrence limit; other returned values use occurrences_value. Historical text is preserved.","type":"string","examples":["indefinite","specific"]},"occurrences_value":{"description":"Saved occurrence limit. Zero blocks further renewals; an invalid or unavailable finite-limit setting yields Occurrence Error. Historical whole numbers are returned without rounding.","type":"integer","examples":[2]},"subscription_specific":{"description":"Whether this is a custom subscription profile, independently of whether its associated subscription is available.","type":"boolean","examples":[false]},"subscription_id":{"type":["string","null"],"description":"Associated subscription's 20 character RevCent ID, or null when unavailable.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"frequency":{"description":"Schedule type, commonly unit, calendar or fiscal. Defaults to unit when not provided; historical text is preserved and invalid values are omitted.","type":"string","examples":["unit","calendar","fiscal"]},"frequency_unit":{"type":["object","null"],"description":"Unit schedule when frequency is unit; otherwise null. Individual unavailable settings are omitted.","additionalProperties":false,"properties":{"unit_value":{"description":"Whole-number interval in the accompanying unit; historical values are preserved.","type":"integer","examples":[3]},"unit":{"description":"Interval unit, such as days or months; historical text is preserved.","type":"string","examples":["months"]}}},"frequency_calendar":{"type":["object","null"],"description":"Available calendar schedule settings, or null. Settings can be partial even when another frequency is selected.","additionalProperties":false,"properties":{"calendar_value":{"type":"integer","description":"Whole-number calendar value used with calendar_unit and calendar_parent.","examples":[0]},"calendar_unit":{"type":"string","description":"Calendar unit for the renewal schedule.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_parent":{"type":"string","description":"Parent calendar interval for the schedule.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"frequency_fiscal":{"type":["object","null"],"description":"Available fiscal quarter/year schedule settings, or null. Settings can be partial even when another frequency is selected.","additionalProperties":false,"properties":{"fiscal_setting":{"type":"string","description":"Available fiscal timing setting.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_value":{"type":"integer","description":"Available whole-number fiscal value; unavailable or invalid values are omitted.","examples":[0]},"fiscal_unit":{"type":"string","description":"Available fiscal interval unit, such as quarter or year.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"shipping":{"items":{"description":"20 character RevCent ID of the shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Currently returns an empty compatibility array. This does not establish that no shipping applies.","maxItems":0},"tax":{"items":{"description":"20 character RevCent ID of the tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Currently returns an empty compatibility array. This does not establish that no tax applies.","maxItems":0},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten distinct available related sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten distinct available related product sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to ten distinct available related trial IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to ten distinct available related subscription renewal IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the related transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten distinct available related transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to ten distinct available related discount IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten distinct available related salvage transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to ten distinct available related PayPal transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to ten distinct available related offline payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the related check payment.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to ten distinct available related check payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to ten distinct available related chargeback IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to ten distinct available related fraud detection IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to ten distinct available related API call IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to ten distinct available related AI Assistant IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to ten distinct available related AI Thread IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Ordered by creation time, newest first within the selected subset; not necessarily the globally newest records.","maxItems":10,"uniqueItems":true},"ai_voice_agents":{"type":"array","description":"Up to ten distinct available related AI Voice Agent IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the related AI Voice Agent.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"ai_voice_calls":{"type":"array","description":"Up to ten distinct available related AI Voice Call IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Ordered by creation time, newest first within the selected subset; not necessarily the globally newest records.","maxItems":10,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the related AI Voice Call.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"is_expired":{"type":"boolean","description":"Available expiration flag; false when not provided. An expired subscription has no next renewal date, but can still include future renewal dates and a separate display status."},"expired_date_unix":{"type":["integer","null"],"description":"Available expiration time in Unix seconds when is_expired is true; otherwise null. Null also indicates an unavailable or unusable date.","format":"unix-time","examples":[1893499200]}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Subscription","description":"Edit a subscription using the subscription ID. This operation is meant for modifying attributes of a subscription, and not the active status of a subscription. Use the web app to modify the product and customize a specific subscriptions' renewal period.","operationId":"EditSubscription","x-api-permission-description":"Allows the editing of subscriptions.","x-api-permission":"subscription:edit","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditSubscription.md","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"The subscription ID.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"subscription_profile":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"coupon":{"description":"An array of coupons to attach to the subscription.","type":"array","items":{"type":"string","description":"A 20 character coupon ID.","minLength":20,"maxLength":20,"examples":["VPmmrpbVl7cQ9JaXEanl"]}},"amount":{"description":"The subscription amount in major currency units. Must be at least 0.01 whenever supplied. Accepted values are rounded to two decimal places using half-even rounding.","type":"number","minimum":0.01,"examples":[0.01]},"next_renewal_date":{"description":"Set the subscriptions' next renewal date","type":"string","format":"date-time","examples":["2030-12-31T12:00:00Z"]},"ship_to":{"description":"The ship to information for the item.","type":"object","additionalProperties":false,"properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["Alex"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["River"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["Suite 100"]},"city":{"type":"string","description":"The shipping city.","examples":["Boston"]},"state":{"type":"string","description":"The shipping state.","examples":["MA"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["02108"]},"company":{"type":"string","description":"The shipping company.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"country":{"type":"string","description":"The address country as a valid three-letter ISO 3166-1 alpha-3 code, such as USA, MEX or CHN. If supplied and not empty, a valid three-letter code is required. Leading and trailing whitespace is removed and letters are normalized to uppercase. An empty string is allowed. Payment country codes are converted to the format required by the selected gateway. US, CA, MX and GB are also accepted and normalized to USA, CAN, MEX and GBR, respectively.","examples":["USA"]},"email":{"type":"string","format":"email","description":"The shipping email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The shipping phone.","examples":["+12025550123"]}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_id":{"description":"The 20 character ID of the campaign associated with the subscription.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/{subscription_id}/activate":{"post":{"summary":"Activate A Subscription","description":"Activate a currently suspended subscription using the subscription ID.","operationId":"ActivateSubscription","x-api-permission-description":"Allows the activation of subscriptions.","x-api-permission":"subscription:activate","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ActivateSubscription.md","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"The subscription ID.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"result":{"type":"string","examples":["Subscription activated."]},"campaign_id":{"description":"The 20 character ID of the campaign associated with the subscription.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"trial_id":{"anyOf":[{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},{"type":"null"}],"description":"The 20 character ID of the active trial expired by activation, or null when no active trial was expired."}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/{subscription_id}/suspend":{"post":{"summary":"Suspend A Subscription","description":"Suspend a subscription using the subscription ID. You can restart a suspended subscription using the SubscriptionActivate operation.","operationId":"SuspendSubscription","x-api-permission-description":"Allows the suspension of subscriptions.","x-api-permission":"subscription:suspend","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SuspendSubscription.md","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"The subscription ID.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"result":{"type":"string","examples":["Subscription suspended."]},"campaign_id":{"description":"The 20 character ID of the campaign associated with the subscription.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/{subscription_id}/cancel":{"post":{"summary":"Cancel A Subscription","description":"Cancel a subscription using the subscription ID. This operation is permanent and cannot be undone. Use the SubscriptionSuspend operation if you wish to restart the subscription at a later date.","operationId":"CancelSubscription","x-api-permission-description":"Allows the cancellation of subscriptions.","x-api-permission":"subscription:cancel","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CancelSubscription.md","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"The subscription ID.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"result":{"type":"string","examples":["Subscription cancelled."]},"campaign_id":{"description":"The 20 character ID of the campaign associated with the subscription.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The name of the campaign associated with the subscription.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/{subscription_id}/renew":{"post":{"summary":"Renew A Subscription","description":"Renew a subscription and attempt payment immediately. Use update_schedule to control whether the next renewal date advances.","operationId":"RenewSubscription","x-api-permission-description":"Allows the renewal of subscriptions.","x-api-permission":"subscription:renew","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RenewSubscription.md","tags":["Subscriptions"],"parameters":[{"in":"path","name":"subscription_id","description":"The subscription ID.","required":true,"schema":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"amount":{"type":"number","minimum":0,"description":"Optional nonnegative renewal amount override in major currency units. Zero is allowed by the API, but the selected gateway may reject an amount below its own minimum, including zero.","examples":[0]},"gateway_id":{"type":"string","description":"Optional public account-owned user gateway ID. An ordinary-card override is exclusive and bypasses inherited profiles. A selected saved wallet always uses its originating gateway instead. No public payment_profile override.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"update_schedule":{"type":"boolean","default":true,"description":"Whether to advance the next renewal date when the renewal attempt begins, using the subscription frequency and manual renewal date. Defaults to true. The date advances even if payment is declined, rejected or uncertain. False preserves the existing date. Validation or eligibility failures before an attempt begins do not advance it."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The successful subscription renewal, including payment totals, related records and the resulting renewal schedule.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"amount":{"type":"number","description":"The amount captured for this payment. Expressed in the payment currency.","examples":[0]},"amount_captured":{"type":"number","description":"The amount captured. Expressed in the payment currency.","examples":[0]},"amount_discounted":{"type":"number","description":"The discount applied to this payment. Expressed in the payment currency.","examples":[0]},"amount_fees":{"type":"number","description":"The fees associated with this payment. Expressed in the payment currency.","examples":[0]},"amount_gross":{"type":"number","description":"The gross payment amount. Expressed in the payment currency.","examples":[0]},"amount_net":{"type":"number","description":"The net payment amount. Expressed in the payment currency.","examples":[0]},"amount_original_total":{"type":"number","description":"The original total before discounts and payment adjustments. Expressed in the payment currency.","examples":[0]},"amount_remaining":{"type":"number","description":"The unpaid amount assigned to recovery. Expressed in the payment currency.","examples":[0]},"amount_to_salvage":{"type":"number","description":"The amount assigned to the salvage transaction. Expressed in the payment currency.","examples":[0]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"subscription_profile_id":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"subscription_renewal_id":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway":{"type":"string","description":"The gateway name, when a payment attempt was made.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the gateway, or null when no gateway ID is available. Included when a payment attempt was made.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"transaction_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the transaction, or null when no transaction was created.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"salvage_transaction":{"description":"The salvage transaction for the unpaid remainder, or null when none was created.","type":["object","null"],"additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Whether a salvage transaction was created for an unpaid remainder."},"discount_created":{"type":"array","description":"IDs of discount records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]}},"shipping_created":{"type":"array","description":"IDs of shipping records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}},"tax_created":{"type":"array","description":"IDs of tax records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}},"next_renewal_date":{"type":"string","description":"The next renewal date in M/D/YYYY format.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"next_renewal_date_unix":{"type":"integer","description":"The next renewal date as a Unix timestamp in seconds.","examples":[1893499200]},"schedule_updated":{"type":"boolean","description":"Whether the subscription renewal schedule was updated."}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"402":{"description":"Unsuccessful renewal attempt: code 2 indicates a confirmed failure or provider rejection; code 3 with reconciliation_required indicates an uncertain outcome. Either can include subscription_renewal_id.","content":{"application/json":{"schema":{"type":"object","description":"An unsuccessful subscription renewal attempt, including its renewal identifier, resulting schedule and any recovery transaction. A renewal identifier does not establish that payment was captured.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"The renewal outcome: 2 for a confirmed unsuccessful attempt, including a known provider rejection; 3 when the payment outcome or completion is uncertain and requires reconciliation.","enum":[2,3],"examples":[2]},"message":{"type":"string","description":"A human-readable explanation of the unsuccessful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The payment outcome summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"gateway":{"type":"string","description":"The gateway name, when an attempt reached a gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"custom_error":{"type":"string","description":"The payment-profile message supplied for a declined payment, when configured.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"reconciliation_required":{"type":"boolean","description":"Present and true when the payment outcome or completion is uncertain and requires reconciliation before another attempt. Omitted for a confirmed unsuccessful attempt."},"salvage_transaction":{"type":["object","null"],"description":"The salvage transaction created for this failure, or null when none was created.","additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Whether a salvage transaction was created for this failure."},"subscription_id":{"type":"string","description":"A 20 character subscription ID.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_profile_id":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"subscription_renewal_id":{"description":"The 20 character RevCent ID of the renewal attempt. May be returned for a confirmed unsuccessful attempt or an uncertain outcome; its presence does not imply captured payment or uncertainty.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"next_renewal_date":{"type":"string","description":"The next renewal date in M/D/YYYY format.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"next_renewal_date_unix":{"type":"integer","description":"The next renewal date as a Unix timestamp in seconds.","examples":[1893499200]},"schedule_updated":{"type":"boolean","description":"Whether the subscription renewal schedule was updated."}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscriptions/search":{"get":{"summary":"Search Subscriptions","description":"Find subscriptions by subscription ID, customer contact details or metadata values. Returns up to 10 matching summaries. Use a result ID with GetSubscription for fuller details when available.","operationId":"SearchSubscriptions","x-api-permission-description":"Allows the searching of subscriptions.","x-api-permission":"subscription:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a subscription when you do not know the subscription ID and wish to retrieve the details of a specific subscription. Once a subscription has been found, use an individual search results' id property and the GetSubscription operation to retrieve the subscription details.<br><br>Important: If using the SearchSubscriptions and GetSubscription method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the subscription using a secondary non-provided value, such as the customer ZIP code in the GetSubscription response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchSubscriptions.md","tags":["Subscriptions"],"parameters":[{"name":"search_term","description":"Required search term or phrase. Leading and trailing whitespace is removed; the remaining text must be nonblank. For repeated parameters, the last effective value is used. A nonempty multi-value list takes precedence over a single value. No other query parameters are accepted.","in":"query","required":true,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"Searchable information includes the subscription ID; customer first and last names, first address line, email and phone; and subscription metadata values. Available customer details may differ from the information that matched. Not every searchable value is returned in the summary or highlights."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Matching subscription summaries and API-call information. Available customer details may differ from the information that matched.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful search retrieval, not a subscription or payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to 10 subscription summaries in descending relevance order. Results may be empty and are not an exhaustive list of matches. No pagination is available. Use each id with GetSubscription for fuller details when available.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Current customer first address line, when available. Empty and historical text may be returned.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Current customer second address line, when available. Empty and historical text may be returned.","examples":["West Wing"]},"amount":{"type":"number","description":"Subscription amount in major currency units, retaining its numeric precision. It is not the last-renewal total. Currency is not returned here; use id with GetSubscription for available currency and fuller billing information. Omitted when unavailable or invalid.","examples":[0]},"city":{"type":"string","description":"Current customer city, when available. Empty and historical text may be returned.","examples":["Washington"]},"created_date_unix":{"description":"Subscription creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the customer. Omitted when unavailable or invalid; other customer details may still be present.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"Available valid customer email address; omitted when unavailable or invalid. It can differ from the email that matched.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"Current customer first name, when available. Empty and historical text may be returned.","examples":["George"]},"highlights":{"type":"array","description":"Optional matching categories and text fragments, which may be incomplete or differ from the available returned customer details.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","last_name","metadata","phone"],"description":"Public category of the highlighted match; it need not identify the exact current response value.","examples":["last_name"]},"values":{"type":"array","description":"Available matching text fragments for this category; may be empty.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"Optional relevance score for this highlighted passage, separate from the whole-result score and not limited to 0–1.","examples":[0]},"full_text":{"type":"string","description":"Available metadata match text with context, returned only for metadata highlights. It need not contain the complete metadata value or correspond to an entry in the returned metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"20 character RevCent ID of the subscription, for use with GetSubscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"item_type":{"type":"string","const":"subscription","description":"The item type returned in the search result.","examples":["subscription"]},"last_name":{"type":"string","description":"Current customer last name, when available. Empty and historical text may be returned.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to 50 available metadata name/value pairs, preserving text, order and duplicates. May be empty or omitted and need not include every metadata value that matched.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"Current customer phone, when available. Empty and historical text may be returned.","examples":["1234567890"]},"score":{"type":"number","description":"Relevance information for the whole result, distinct from individual highlight scores. Higher scores indicate greater relevance, without a guaranteed 0–1 range. Returns 1 when absent; explicit null or invalid values are omitted.","examples":[7.68]},"state":{"type":"string","description":"Current customer state or region, when available. Empty and historical text may be returned.","examples":["DC"]},"status":{"type":"string","description":"Available subscription status text, including empty or historical values; omitted when unavailable or invalid. It need not equal GetSubscription's fuller lifecycle display status.","examples":["Active","Overdue"]},"url":{"type":"string","format":"uri","description":"The RevCent subscription-details URL identifying this result's id.","examples":["https://revcent.com/user/subscription-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Current customer ZIP or postal code, when available. Empty and historical text may be returned.","examples":["20500"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_profiles":{"get":{"summary":"Get Subscription Profiles","description":"Retrieve subscription profile configurations in newest-first creation order. Omit the type filter for global profiles, or select custom profiles or both types. Only limit, page and subscription_profile_type_filter are accepted.","operationId":"GetSubscriptionProfiles","x-api-permission-description":"Allows the retrieving of subscription profiles.","x-api-permission":"subscription_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Profiles","x-md-link":"markdown/mcp/operation/GetSubscriptionProfiles.md","tags":["Subscription Profiles"],"parameters":[{"description":"Required number of results per page, from 1 to 25. There is no default when omitted. Repeated values use the last value.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. A page beyond the available results returns an empty array. total_pages may exceed 20. Repeated values use the last value.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Profile types to retrieve: global or custom. Omission selects global profiles. Repeat this parameter to select both types; duplicate values are ignored. Values are case-sensitive and must not be empty or comma-separated. A custom profile remains custom when its associated subscription is unavailable.","name":"subscription_profile_type_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["global","custom"],"examples":["global","custom"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of subscription profile configurations and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of profiles returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero normalized to one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"Subscription billing frequency, renewal limits and associated profiles.","additionalProperties":false,"properties":{"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the subscription profile. Use GetSubscriptionProfile for individual retrieval.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Available nonempty profile name; historical text and whitespace are preserved.","type":"string","examples":["My Subscription Profile"]},"description":{"description":"Available profile description, including an empty string; omitted when unavailable.","type":"string","examples":["The subscription profile used for managing subscriptions."]},"enabled":{"description":"Available profile enabled setting; omitted when unavailable.","type":"boolean","examples":[true]},"frequency":{"description":"Saved schedule type: unit intervals, calendar positions or fiscal quarter/year periods. Unavailable or unrecognized values return unit.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_unit":{"type":["object","null"],"additionalProperties":false,"description":"Available unit-interval schedule when frequency is unit; otherwise null. Missing or invalid settings also return null.","properties":{"unit":{"description":"Time unit used with value to define the renewal interval.","type":"string","enum":["days","weeks","months","years"],"examples":["days","weeks","months","years"]},"value":{"description":"Saved interval count, used with unit; historical integer values are preserved.","type":"integer","examples":[30]}}},"frequency_calendar":{"type":["object","null"],"additionalProperties":false,"description":"Available calendar schedule when frequency is calendar; otherwise null. Missing or invalid settings also return null. Value identifies the position of unit within parent.","properties":{"unit":{"description":"Calendar unit whose position is specified by value within parent.","type":"string","enum":["day","week","month"],"examples":["day","week","month"]},"value":{"description":"Saved calendar position within the parent interval; historical integer values are preserved.","type":"integer","examples":[1]},"parent":{"description":"Calendar period containing the position defined by unit and value.","type":"string","enum":["week","month","year"],"examples":["week","month","year"]}}},"frequency_fiscal":{"type":["object","null"],"additionalProperties":false,"description":"Available fiscal quarter/year schedule when frequency is fiscal; otherwise null. Missing or invalid settings also return null.","properties":{"unit":{"description":"Fiscal period used by the schedule: quarter or year.","type":"string","enum":["quarter","year"],"examples":["quarter","year"]},"value":{"description":"Saved fiscal interval count for infrequent schedules, such as every second quarter or year. May be null; historical integers are preserved.","type":["integer","null"],"examples":[2]},"setting":{"description":"Standard uses each fiscal quarter or year; infrequent uses the saved interval count.","type":"string","enum":["standard","infrequent"],"examples":["standard","infrequent"]}}},"occurrences":{"type":"string","description":"Saved renewal-limit mode: indefinite or specific. Unavailable or unrecognized values return indefinite.","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"type":"integer","description":"Saved renewal count for specific occurrences, including historical integers; otherwise zero. Unavailable or invalid specific counts also return zero. With specific occurrences, zero is not an unlimited-renewal indicator.","examples":[12]},"overdue_limit":{"type":"integer","description":"Nonnegative overdue-renewal threshold for suspension. Zero means this threshold does not impose suspension and is also returned when unavailable or invalid.","minimum":0,"examples":[1]},"prefer_gateway":{"type":"object","additionalProperties":false,"description":"Renewal gateway preference and locking settings.","properties":{"enabled":{"description":"Whether gateway preference is enabled. Preference favors an available gateway from a successful renewal, falling back to the originating sale; it does not by itself lock renewals to one gateway or bypass Payment Profile processing. Defaults to false when unavailable.","type":"boolean","examples":[false]},"lock_gateway":{"description":"Whether to request the originating sale's gateway as the sole candidate when the preference applies and that gateway is available. Returns false unless preference and locking are both enabled.","type":"boolean","examples":[false]},"max":{"description":"Configured nonnegative preferred-gateway use limit, returned only when preference and locking are both enabled; otherwise zero. Unavailable or invalid values also return zero, so a returned zero alone does not establish the effective routing limit.","type":"integer","minimum":0,"examples":[3]}}},"shipping_profile":{"type":["string","null"],"description":"20 character RevCent ID of the associated Shipping Profile, or null when unavailable.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO"]},"payment_profile":{"type":["string","null"],"description":"20 character RevCent ID of the associated Payment Profile, or null when unavailable.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"subscription_specific":{"description":"Whether the profile is classified as custom for a specific subscription. Remains true when its subscription association is missing or unavailable; false identifies a global profile.","type":"boolean","examples":[false]},"subscription_id":{"type":["string","null"],"description":"20 character RevCent ID of the associated subscription for a custom profile, or null when unavailable or not applicable.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available profiles on the requested page, in newest-first order. Empty when there are no matches or the page is beyond the results."},"total_count":{"description":"Number of available profiles matching the selected type or types; omission of the type filter selects global profiles.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero for no matches. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Subscription Profile","description":"Create a Subscription Profile, which will issue a unique Subscription Profile ID.","operationId":"CreateSubscriptionProfile","x-api-permission-description":"Allows the creation of subscription profiles.","x-api-permission":"subscription_profile:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Profiles","x-md-link":"markdown/mcp/operation/CreateSubscriptionProfile.md","tags":["Subscription Profiles"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The subscription profile name. Must be unique across all subscription profiles.","type":"string","examples":["My Subscription Profile"]},"description":{"description":"The subscription profile description.","type":"string","examples":["The subscription profile used for managing subscriptions."]},"enabled":{"description":"Whether the subscription profile is currently enabled.","type":"boolean","examples":[true]},"frequency":{"description":"The subscription billing frequency type. Unit: Renews every value and unit. I.e. Every 30 (value) days (unit). Calendar: Renews on the nth unit of every parent unit. I.e. On the 2nd (nth) week (unit) of every month (parent unit). Fiscal: Renews every standard or infrequent fiscal period. Standard: Renews quarterly. Infrequent: renews every nth quarter.","type":"string","examples":["unit","calendar","fiscal"],"enum":["unit","calendar","fiscal"]},"frequency_unit":{"type":"object","additionalProperties":false,"description":"If frequency is 'unit', this defines the subscription billing frequency based on the unit and value. For example, if the frequency value is 30, and the frequency unit is 'days', then the subscription will renew every 30 days.","properties":{"unit":{"description":"The subscription billing frequency unit. This is used in conjunction with the frequency value to determine the subscription billing cycle.","type":"string","examples":["days","weeks","months","years"],"enum":["days","weeks","months","years"]},"value":{"description":"The subscription billing frequency value. This is used in conjunction with the frequency unit to determine the subscription billing cycle. Must be positive when frequency is unit.","type":"integer","examples":[30]}},"required":["unit","value"]},"frequency_calendar":{"type":"object","additionalProperties":false,"description":"If frequency is 'calendar', this defines the subscription billing frequency based on the calendar unit and nth value. For example, if the frequency is 'calendar', and the calendar unit is 'day', and the nth value is 1, and the parent unit is 'month', then the subscription will renew on the 1st day of every month.","properties":{"unit":{"description":"The subscription billing frequency calendar unit. This is used in conjunction with the nth value and parent to determine the subscription billing cycle.","type":"string","examples":["day","week","month"],"enum":["day","week","month"]},"value":{"description":"The numbered day, week or month within the parent period. When frequency is calendar, supported unit/parent ranges are day/week: 1–7; day/month: 1–31; week/month: 1–4; week/year: 1–52; month/year: 1–12. Other combinations are not supported.","type":"integer","examples":[1]},"parent":{"description":"The subscription billing frequency calendar parent unit. This is used in conjunction with the calendar unit and nth value to determine the subscription billing cycle.","type":"string","examples":["week","month","year"],"enum":["week","month","year"]}},"required":["unit","value","parent"]},"frequency_fiscal":{"type":"object","additionalProperties":false,"description":"If frequency is 'fiscal', this defines the subscription billing frequency based on the fiscal period type.","properties":{"unit":{"description":"The subscription billing frequency fiscal unit. This is used in conjunction with the fiscal value and fiscal setting to determine the subscription billing cycle based on fiscal periods.","type":"string","examples":["quarter","year"],"enum":["quarter","year"]},"value":{"description":"When frequency is fiscal and setting is infrequent, this positive integer is required. For unit quarter, use 1–4; unit year has no additional upper limit. Ignored for the standard setting.","type":"integer","examples":[2]},"setting":{"description":"The subscription billing frequency fiscal period type. Standard fiscal periods renew quarterly or yearly. Infrequent fiscal periods renew every nth fiscal unit, based on the fiscal value.","type":"string","examples":["standard","infrequent"],"enum":["standard","infrequent"]}},"required":["unit","setting"]},"occurrences":{"type":"string","description":"Specify whether subscriptions associated with this profile should renew indefinitely or for a specific number of renewals. If set to specific, the subscription will renew for the number of times specified in the occurrences_value property. If set to indefinite, the subscription will continue to renew until suspended or cancelled. Default is indefinite.","examples":["indefinite","specific"],"enum":["indefinite","specific"]},"occurrences_value":{"type":"integer","description":"Maximum number of renewals. Required and a positive integer when occurrences is specific; ignored for other occurrence settings.","examples":[12]},"overdue_limit":{"type":"integer","description":"The maximum number of overdue renewals a subscription associated with this profile can have before it is automatically suspended. Must be a nonnegative integer whenever supplied.","examples":[1],"minimum":0},"prefer_gateway":{"type":"object","additionalProperties":false,"description":"","properties":{"enabled":{"description":"Whether to force the subscription to renew on the last successful transaction gateway. This will limit the subscription to renew on a single fixed gateway and ignore the subscription profiles' associated payment profile. For advanced users. Recommended set to False.","type":"boolean","examples":[false]},"lock_gateway":{"description":"If prefer_gateway.enabled = true, whether to force the subscription to renew only on the originating sales' successful transaction gateway. This will limit the subscription to renew on a single fixed gateway and ignore the subscription profiles' associated payment profile. For advanced users. Recommended set to False.","type":"boolean","examples":[false]},"max":{"description":"If prefer_gateway.enabled = true, the maximum number of times to use the preferred gateway for renewals of subscriptions associated with this profile. If the preferred gateway has been used for the number of times specified in the max property, RevCent will attempt to process subsequent renewals using the subscription profiles' associated payment profile.","type":"integer","examples":[3]}}},"shipping_profile":{"type":"string","description":"A 20 character shipping profile ID. Optional. Meant for granting a specific shipping rate for all subscriptions associated with this subscription profile. Provide a shipping profile if shippable products will use this subscription profile and you wish to set a specific rate, regardless of shipment destination. Otherwise, RevCent will calculate shipping by finding a match within all shipping profiles. Important: If provided, the first rate listed in the shipping profile will be used, i.e. no product, product group, revenue rules or country restrictions are taken into account within the shipping profile.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO"]},"payment_profile":{"type":"string","description":"A 20 character payment profile ID. The payment profile which determines the processing flow of subscription renewals using this subscription profile.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"subscription_specific":{"description":"Indicates whether the subscription profile is being made for a specific subscription. You have the ability to create a customized subscription profile and have it automatically attach it to an individual subscription in order to tailor the renewal frequency to a specific customer's needs.<br><br>If true, you must also provide the subscription_id of the subscription you wish to associate this profile with. Only create a subscription profile specific to a subscription if the customer wishes to have a custom billing frequency. Note: if a subscription profile is specific to a subscription, then it cannot be used for any other subscription. This is meant for one-time use subscription profiles that are customized for a specific subscription's needs.<br><br>If false, the subscription profile can be used for any subscription and is not limited to a specific subscription.","type":"boolean","examples":[false]},"subscription_id":{"type":"string","description":"If subscription_specific = true, the 20 character subscription ID of the subscription which you want this profile to associate with. The subscription will be automatically updated to use the newly created profile and no longer use the subscription profile it inherited from the original purchased product.<br><br>Note: If the target subscription already has a custom profile attached, an error will be returned, and you must instead edit the target subscription's current custom profile.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","payment_profile","frequency"],"type":"object","allOf":[{"if":{"properties":{"occurrences":{"const":"specific"}},"required":["occurrences"]},"then":{"required":["occurrences_value"],"properties":{"occurrences_value":{"minimum":1}}}},{"if":{"properties":{"frequency":{"const":"unit"}},"required":["frequency"]},"then":{"required":["frequency_unit"],"properties":{"frequency_unit":{"properties":{"value":{"minimum":1}}}}}},{"if":{"properties":{"frequency":{"const":"calendar"}},"required":["frequency"]},"then":{"required":["frequency_calendar"],"properties":{"frequency_calendar":{"anyOf":[{"properties":{"unit":{"const":"day","examples":["day"]},"parent":{"const":"week","examples":["week"]},"value":{"minimum":1,"maximum":7}}},{"properties":{"unit":{"const":"day","examples":["day"]},"parent":{"const":"month","examples":["month"]},"value":{"minimum":1,"maximum":31}}},{"properties":{"unit":{"const":"week","examples":["week"]},"parent":{"const":"month","examples":["month"]},"value":{"minimum":1,"maximum":4}}},{"properties":{"unit":{"const":"week","examples":["week"]},"parent":{"const":"year","examples":["year"]},"value":{"minimum":1,"maximum":52}}},{"properties":{"unit":{"const":"month","examples":["month"]},"parent":{"const":"year","examples":["year"]},"value":{"minimum":1,"maximum":12}}}]}}}},{"if":{"properties":{"frequency":{"const":"fiscal"}},"required":["frequency"]},"then":{"required":["frequency_fiscal"],"properties":{"frequency_fiscal":{"if":{"properties":{"setting":{"const":"infrequent"}},"required":["setting"]},"then":{"required":["value"],"properties":{"value":{"minimum":1}},"allOf":[{"if":{"properties":{"unit":{"const":"quarter"}},"required":["unit"]},"then":{"properties":{"value":{"maximum":4}}}}]}}}}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_profile_id":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"result":{"type":"string","examples":["Subscription profile created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_profiles/{subscription_profile_id}":{"get":{"summary":"Get A Subscription Profile","description":"Retrieve a subscription profile, including its billing frequency, renewal limits and associated profiles. No query parameters are accepted.","operationId":"GetSubscriptionProfile","x-api-permission-description":"Allows the retrieving of subscription profiles.","x-api-permission":"subscription_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Profiles","x-md-link":"markdown/mcp/operation/GetSubscriptionProfile.md","tags":["Subscription Profiles"],"parameters":[{"in":"path","name":"subscription_profile_id","description":"20 character RevCent ID of the subscription profile to retrieve. Obtain it from GetSubscriptionProfiles.","required":true,"schema":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested subscription profile billing and renewal configuration.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Available nonempty profile name; historical text and whitespace are preserved.","type":"string","examples":["My Subscription Profile"]},"description":{"description":"Available profile description, including an empty string; omitted when unavailable.","type":"string","examples":["The subscription profile used for managing subscriptions."]},"enabled":{"description":"Available profile enabled setting; omitted when unavailable.","type":"boolean","examples":[true]},"frequency":{"description":"Saved schedule type: unit intervals, calendar positions or fiscal quarter/year periods. Unavailable or unrecognized values return unit.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_unit":{"type":["object","null"],"additionalProperties":false,"description":"Available unit-interval schedule when frequency is unit; otherwise null. Missing or invalid settings also return null.","properties":{"unit":{"description":"Time unit used with value to define the renewal interval.","type":"string","enum":["days","weeks","months","years"],"examples":["days","weeks","months","years"]},"value":{"description":"Saved interval count, used with unit; historical integer values are preserved.","type":"integer","examples":[30]}}},"frequency_calendar":{"type":["object","null"],"additionalProperties":false,"description":"Available calendar schedule when frequency is calendar; otherwise null. Missing or invalid settings also return null. Value identifies the position of unit within parent.","properties":{"unit":{"description":"Calendar unit whose position is specified by value within parent.","type":"string","enum":["day","week","month"],"examples":["day","week","month"]},"value":{"description":"Saved calendar position within the parent interval; historical integer values are preserved.","type":"integer","examples":[1]},"parent":{"description":"Calendar period containing the position defined by unit and value.","type":"string","enum":["week","month","year"],"examples":["week","month","year"]}}},"frequency_fiscal":{"type":["object","null"],"additionalProperties":false,"description":"Available fiscal quarter/year schedule when frequency is fiscal; otherwise null. Missing or invalid settings also return null.","properties":{"unit":{"description":"Fiscal period used by the schedule: quarter or year.","type":"string","enum":["quarter","year"],"examples":["quarter","year"]},"value":{"description":"Saved fiscal interval count for infrequent schedules, such as every second quarter or year. May be null; historical integers are preserved.","type":["integer","null"],"examples":[2]},"setting":{"description":"Standard uses each fiscal quarter or year; infrequent uses the saved interval count.","type":"string","enum":["standard","infrequent"],"examples":["standard","infrequent"]}}},"occurrences":{"type":"string","description":"Saved renewal-limit mode: indefinite or specific. Unavailable or unrecognized values return indefinite.","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"type":"integer","description":"Saved renewal count for specific occurrences, including historical integers; otherwise zero. Unavailable or invalid specific counts also return zero. With specific occurrences, zero is not an unlimited-renewal indicator.","examples":[12]},"overdue_limit":{"type":"integer","description":"Nonnegative overdue-renewal threshold for suspension. Zero means this threshold does not impose suspension and is also returned when unavailable or invalid.","minimum":0,"examples":[1]},"prefer_gateway":{"type":"object","additionalProperties":false,"description":"Renewal gateway preference and locking settings.","properties":{"enabled":{"description":"Whether gateway preference is enabled. Preference favors an available gateway from a successful renewal, falling back to the originating sale; it does not by itself lock renewals to one gateway or bypass Payment Profile processing. Defaults to false when unavailable.","type":"boolean","examples":[false]},"lock_gateway":{"description":"Whether to request the originating sale's gateway as the sole candidate when the preference applies and that gateway is available. Returns false unless preference and locking are both enabled.","type":"boolean","examples":[false]},"max":{"description":"Configured nonnegative preferred-gateway use limit, returned only when preference and locking are both enabled; otherwise zero. Unavailable or invalid values also return zero, so a returned zero alone does not establish the effective routing limit.","type":"integer","minimum":0,"examples":[3]}}},"shipping_profile":{"type":["string","null"],"description":"20 character RevCent ID of the associated Shipping Profile, or null when unavailable.","minLength":20,"maxLength":20,"examples":["GM1rJ96wkACGVValOpBO"]},"payment_profile":{"type":["string","null"],"description":"20 character RevCent ID of the associated Payment Profile, or null when unavailable.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"subscription_specific":{"description":"Whether the profile is classified as custom for a specific subscription. Remains true when its subscription association is missing or unavailable; false identifies a global profile.","type":"boolean","examples":[false]},"subscription_id":{"type":["string","null"],"description":"20 character RevCent ID of the associated subscription for a custom profile, or null when unavailable or not applicable.","minLength":20,"maxLength":20,"examples":["WgnrjQXRq0u100B2JRRz"]},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Subscription Profile","description":"Update a subscription profile. Only supplied fields are updated. Changes to billing frequency affect all subscriptions using this profile.","operationId":"EditSubscriptionProfile","x-api-permission-description":"Allows the editing of subscription profiles.","x-api-permission":"subscription_profile:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Profiles","x-md-link":"markdown/mcp/operation/EditSubscriptionProfile.md","tags":["Subscription Profiles"],"parameters":[{"in":"path","name":"subscription_profile_id","description":"The subscription profile ID","required":true,"schema":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The subscription profile name. Must be unique across all subscription profiles.","type":"string","examples":["Example"]},"description":{"description":"The subscription profile description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the subscription profile is currently enabled.","type":"boolean"},"frequency":{"description":"The subscription billing frequency type. Unit: Renews every value and unit. I.e. Every 30 (value) days (unit). Calendar: Renews on the nth unit of every parent unit. I.e. On the 2nd (nth) week (unit) of every month (parent unit). Fiscal: Renews every standard or infrequent fiscal period. Standard: Renews quarterly. Infrequent: renews every nth quarter.<br><br>Note: If modifying frequency, the corresponding frequency settings must be present. For example, if changing frequency from unit to calendar, then the frequency_calendar object with the corresponding calendar billing cycle settings must be included in the request body.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit"]},"frequency_unit":{"type":"object","additionalProperties":false,"description":"If frequency is 'unit', this defines the subscription billing frequency based on the unit and value. For example, if the frequency value is 30, and the frequency unit is 'days', then the subscription will renew every 30 days.<br><br>Important: If you wish to modify frequency unit settings, the 'frequency' property must be present in the request body and the value must be 'unit'. If the 'frequency' property is not present and its value is not 'unit', the frequency_unit settings will be ignored.","properties":{"unit":{"description":"The subscription billing frequency unit. This is used in conjunction with the frequency value to determine the subscription billing cycle.","type":"string","enum":["days","weeks","months","years"],"examples":["days"]},"value":{"description":"The subscription billing frequency value. This is used in conjunction with the frequency unit to determine the subscription billing cycle. Must be positive when frequency is unit.","type":"integer","examples":[0]}},"required":["unit","value"]},"frequency_calendar":{"type":"object","additionalProperties":false,"description":"If frequency is 'calendar', this defines the subscription billing frequency based on the calendar unit and nth value. For example, if the frequency is 'calendar', and the calendar unit is 'day', and the nth value is 1, and the parent unit is 'month', then the subscription will renew on the 1st day of every month.<br><br>Important: If you wish to modify frequency calendar settings, the 'frequency' property must be present in the request body and the value must be 'calendar'. If the 'frequency' property is not present and not set to 'calendar', the frequency_calendar settings will be ignored.","properties":{"unit":{"description":"The subscription billing frequency calendar unit. This is used in conjunction with the nth value and parent to determine the subscription billing cycle.","type":"string","enum":["day","week","month"],"examples":["day"]},"value":{"description":"The numbered day, week or month within the parent period. When frequency is calendar, supported unit/parent ranges are day/week: 1–7; day/month: 1–31; week/month: 1–4; week/year: 1–52; month/year: 1–12. Other combinations are not supported.","type":"integer","examples":[0]},"parent":{"description":"The subscription billing frequency calendar parent unit. This is used in conjunction with the calendar unit and nth value to determine the subscription billing cycle.","type":"string","enum":["week","month","year"],"examples":["week"]}},"required":["unit","value","parent"]},"frequency_fiscal":{"type":"object","additionalProperties":false,"description":"If frequency is 'fiscal', this defines the subscription billing frequency based on the fiscal period type. <br><br>Important: If you wish to modify frequency fiscal settings, the 'frequency' property must be present in the request body and the value must be 'fiscal'. If the 'frequency' property is not present and not set to 'fiscal', the frequency_fiscal settings will be ignored.","properties":{"unit":{"description":"The subscription billing frequency fiscal unit. This is used in conjunction with the fiscal value and fiscal setting to determine the subscription billing cycle based on fiscal periods.","type":"string","enum":["quarter","year"],"examples":["quarter"]},"value":{"description":"When frequency is fiscal and setting is infrequent, this positive integer is required. For unit quarter, use 1–4; unit year has no additional upper limit. Ignored for the standard setting.","type":"integer","examples":[0]},"setting":{"description":"The subscription billing frequency fiscal period type. Standard fiscal periods renew quarterly or yearly. Infrequent fiscal periods renew every nth fiscal unit, based on the fiscal value.","type":"string","enum":["standard","infrequent"],"examples":["standard"]}},"required":["unit","setting"]},"occurrences":{"type":"string","description":"Specify whether subscriptions associated with this profile should renew indefinitely or for a specific number of renewals. If set to specific, the subscription will renew for the number of times specified in the occurrences_value property. If set to indefinite, the subscription will continue to renew until suspended or cancelled. Default is indefinite.","enum":["indefinite","specific"],"examples":["indefinite"]},"occurrences_value":{"type":"integer","description":"If the occurrences property is set to 'specific', the maximum number of times to renew subscriptions associated with this profile. Must be a positive integer whenever supplied. Omit to preserve the existing value.","minimum":1,"examples":[1]},"overdue_limit":{"type":"integer","description":"The maximum number of overdue renewals a subscription associated with this profile can have before it is automatically suspended. Must be a nonnegative integer whenever supplied.","minimum":0,"examples":[0]},"prefer_gateway":{"type":"object","additionalProperties":false,"description":"","properties":{"enabled":{"description":"Whether to force the subscription to renew on the last successful transaction gateway. This will limit the subscription to renew on a single fixed gateway and ignore the subscription profiles' associated payment profile. For advanced users. Recommended set to False.","type":"boolean"},"lock_gateway":{"description":"If prefer_gateway.enabled = true, whether to force the subscription to renew only on the originating sales' successful transaction gateway. This will limit the subscription to renew on a single fixed gateway and ignore the subscription profiles' associated payment profile. For advanced users. Recommended set to False.","type":"boolean"},"max":{"description":"If prefer_gateway.enabled = true, the maximum number of times to use the preferred gateway for renewals of subscriptions associated with this profile. If the preferred gateway has been used for the number of times specified in the max property, RevCent will attempt to process subsequent renewals using the subscription profiles' associated payment profile. Must be a nonnegative integer whenever supplied.","type":"integer","minimum":0,"examples":[0]}}},"shipping_profile":{"type":["string","null"],"description":"A 20 character shipping profile ID. Optional. Meant for granting a specific shipping rate for all subscriptions associated with this subscription profile. Provide a shipping profile if shippable products will use this subscription profile and you wish to set a specific rate, regardless of shipment destination. Otherwise, RevCent will calculate shipping by finding a match within all shipping profiles. Important: If provided, the first rate listed in the shipping profile will be used, i.e. no product, product group, revenue rules or country restrictions are taken into account within the shipping profile.<br><br>Note: to remove a shipping profile, set shipping_profile to null or an empty string.","anyOf":[{"type":"string","minLength":20,"maxLength":20},{"type":"null"},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile":{"type":"string","description":"A 20 character payment profile ID. The payment profile which determines the processing flow of subscription renewals using this subscription profile.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","allOf":[{"if":{"properties":{"frequency":{"const":"unit"}},"required":["frequency"]},"then":{"required":["frequency_unit"],"properties":{"frequency_unit":{"properties":{"value":{"minimum":1}}}}}},{"if":{"properties":{"frequency":{"const":"calendar"}},"required":["frequency"]},"then":{"required":["frequency_calendar"],"properties":{"frequency_calendar":{"anyOf":[{"properties":{"unit":{"const":"day","examples":["day"]},"parent":{"const":"week","examples":["week"]},"value":{"minimum":1,"maximum":7}}},{"properties":{"unit":{"const":"day","examples":["day"]},"parent":{"const":"month","examples":["month"]},"value":{"minimum":1,"maximum":31}}},{"properties":{"unit":{"const":"week","examples":["week"]},"parent":{"const":"month","examples":["month"]},"value":{"minimum":1,"maximum":4}}},{"properties":{"unit":{"const":"week","examples":["week"]},"parent":{"const":"year","examples":["year"]},"value":{"minimum":1,"maximum":52}}},{"properties":{"unit":{"const":"month","examples":["month"]},"parent":{"const":"year","examples":["year"]},"value":{"minimum":1,"maximum":12}}}]}}}},{"if":{"properties":{"frequency":{"const":"fiscal"}},"required":["frequency"]},"then":{"required":["frequency_fiscal"],"properties":{"frequency_fiscal":{"if":{"properties":{"setting":{"const":"infrequent"}},"required":["setting"]},"then":{"required":["value"],"properties":{"value":{"minimum":1}},"allOf":[{"if":{"properties":{"unit":{"const":"quarter"}},"required":["unit"]},"then":{"properties":{"value":{"maximum":4}}}}]}}}}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_profile_id":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_profiles/{subscription_profile_id}/delete":{"post":{"summary":"Delete A Subscription Profile","description":"Delete a specific subscription profile using the subscription profile ID and delete path.<br><br>Note: An error will return if any subscriptions or products are associated with the profile. This is to ensure subscriptions renew and products purchased are not affected.","operationId":"DeleteSubscriptionProfile","x-api-permission-description":"Allows the deletion of subscription profiles.","x-api-permission":"subscription_profile:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteSubscriptionProfile.md","tags":["Subscription Profiles"],"parameters":[{"in":"path","name":"subscription_profile_id","description":"The Subscription Profile ID","required":true,"schema":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"subscription_profile_id":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_renewals":{"get":{"summary":"Get Subscription Renewals","description":"Retrieve subscription renewal summaries in newest-first order, including payment amounts, status and available related resources.","operationId":"GetSubscriptionRenewals","x-api-permission-description":"Allows the retrieving of subscription renewals.","x-api-permission":"subscription_renewal:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date span must be strictly shorter than 9,900 days unless customer_id is supplied; customer_id does not remove the date requirement or date filtering.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSubscriptionRenewals.md","tags":["Subscription Renewals"],"parameters":[{"description":"Required inclusive start of the renewal creation-date range, as a nonnegative Unix timestamp in seconds. Must not exceed date_end; equal endpoints return an empty interval. Repeated values use the last value.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required exclusive end of the renewal creation-date range, as a nonnegative Unix timestamp in seconds. The span must be strictly shorter than 9,900 days unless customer_id is supplied. Repeated values use the last value.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of renewals per page, from 1 to 25; there is no default when omitted. Repeated values use the last value.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20; 0 selects page 1. Repeated values use the last value. Narrow the date range or filters when more than 20 pages match.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated campaign resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated product resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"product_filter","in":"query","required":false,"schema":{"type":"array","items":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated User Shop resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"shop_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct, case-sensitive payment-type values supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"payment_type_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct 20 character RevCent IDs of associated subscription profile resources, supplied as repeated parameters. Values within this filter are alternatives; different filters combine.","name":"subscription_profile_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character subscription profile ID.","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]}},"style":"form","explode":true},{"description":"Filter by up to 50 distinct, case-sensitive values supplied as repeated parameters. captured selects fully captured renewals, excluding partial capture; settled includes partial and full settlement; refund includes refunds; void includes voids and full refunds; overdue includes overdue renewals and renewals awaiting salvage recovery. error includes failed or declined renewals and renewals without an available status. All values within this filter use OR, including fraud and chargeback; different filters use AND. These values differ from returned display statuses.","name":"status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["captured","settled","refund","void","overdue","fraud","chargeback","error"],"examples":["captured","overdue"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs, supplied as repeated JSON objects or bracketed name/value parameters. Names contain 1–100 characters and values 1–255. Values for the same name are alternatives; different names must all match. METADATA_NAME_EXISTS selects name presence regardless of value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose renewals to retrieve. Accepts one distinct ID. Removes only the date-span ceiling; date_start and date_end remain required and still filter results.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of subscription renewal summaries and pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of renewals returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero normalized to one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Renewal creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The renewal's 20 character RevCent ID, for GetSubscriptionRenewal.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"amount":{"description":"Alias of amount_total, present when that total is available.","type":"number","format":"float","examples":[149.99]},"amount_original_total":{"description":"Original renewal total; omitted when no usable numeric value is available.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Current renewal total.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Gross renewal payment amount.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net renewal payment amount.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Renewal payment fees.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Captured renewal amount.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Settled renewal amount.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Remaining renewal amount.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Refunded renewal amount.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID; returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable. Optional historical text is preserved.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available historical customer email text; omitted when unavailable or empty.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"Available customer phone number, using its international form when available.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs; text, order and duplicates are preserved.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","description":"Customer status: Chargeback takes precedence over Fraud Detected, Blocked, Disabled and Enabled. It is independent of the renewal display status.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its saved case. Omitted when unavailable or unrecognized; no currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Available live-mode flag for the renewal; omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"description":"Recognized payment-type ID/name pair, or null when unavailable: Credit Card, PayPal, Offline Payment or Check.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"product":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["AV 2017"]},"quantity":{"description":"Available product quantity as a safe integer; historical zero and negative values are retained.","type":"integer","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[49.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[true]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["av_2017101"]},"sku":{"type":"string","description":"The product SKU.","examples":["av_2017"]},"list_price":{"type":"number","description":"The product list price.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."}},"type":"object","description":"Available product and renewal product-sale summary; omitted when unavailable. Prices use the renewal currency when available; historical safe-integer quantities are retained."},"third_party_shop":{"description":"Available associated User Shop ID/name summary, or null.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":["object","null"]},"is_overdue":{"description":"Available renewal overdue flag; false when unavailable. Invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"subscription_profile":{"description":"Available subscription billing configuration, or an empty object when unavailable. Optional historical fields may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Available indefinite or specific renewal-limit setting.","type":"string","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"description":"Available saved occurrence count; historical safe integers are preserved.","type":"integer","examples":[2]},"subscription_specific":{"description":"Available custom-profile classification, independent of whether its subscription association is available. Defaults to false when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"subscription_id":{"type":["string","null"],"description":"Associated subscription's 20 character RevCent ID, or null when unavailable.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"frequency_unit":{"description":"Available interval settings when frequency is unit; otherwise null. May be partial or null when settings are unavailable.","type":["object","null"],"additionalProperties":false,"properties":{"unit_value":{"description":"Saved interval count used with unit; historical safe integers are preserved.","type":"integer","examples":[3]},"unit":{"description":"Saved interval unit, such as days, weeks, months or years; historical text is preserved.","type":"string","examples":["months"]}}},"frequency":{"description":"Available schedule type: unit, calendar or fiscal. Missing/null values default to unit; unrecognized text is omitted.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_calendar":{"type":["object","null"],"description":"Available saved calendar settings, which can be partial or null; presence alone does not establish the active schedule.","properties":{"calendar_unit":{"type":"string","description":"Saved calendar unit, such as day, week or month.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_parent":{"type":"string","description":"Saved enclosing calendar interval, such as week, month or year.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_value":{"type":"integer","description":"Saved position within the enclosing calendar interval; historical safe integers are preserved.","examples":[0]}},"additionalProperties":false},"frequency_fiscal":{"type":["object","null"],"description":"Available saved fiscal quarter/year settings, which can be partial or null; presence alone does not establish the active schedule.","properties":{"fiscal_unit":{"type":"string","description":"Saved fiscal interval, commonly quarter or year.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_setting":{"type":"string","description":"Saved fiscal schedule setting, commonly standard or infrequent.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_value":{"type":["integer","null"],"description":"Saved fiscal interval count; null may be returned and historical safe integers are preserved.","examples":[0]}},"additionalProperties":false}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs; text, order and duplicates are preserved.","maxItems":50},"updated_date_unix":{"description":"Renewal update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 available related sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 available related product sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 available related shipment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 available related discount IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 available related trial IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 available related subscription IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the related transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 available related transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 available related PayPal transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 available related offline payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the related check payment.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 available related check payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 available related salvage transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 available related pending refund IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 available related chargeback IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 available related fraud detection IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":50,"uniqueItems":true},"status":{"type":"string","description":"Renewal display status, distinct from customer.status and the narrower status_filter values. Unavailable or unrecognized renewal statuses return Error; qualifying fraud and chargebacks can override the renewal status.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount_to_salvage":{"type":"number","description":"Renewal amount designated for recovery.","examples":[0]},"amount_discounted":{"type":"number","description":"Discounted renewal amount.","examples":[0]},"gateway_details":{"type":["object","null"],"description":"Available gateway summaries for the successful transaction, or null when the enabled User Gateway or provider summary is unavailable.","properties":{"user_gateway":{"type":"object","description":"The account gateway.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the account gateway.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]},"custom_descriptor":{"type":["object","null"],"description":"Available enabled statement-descriptor settings, or null. Fields may be partial and do not guarantee the text ultimately displayed by a payment provider.","properties":{"enabled":{"type":"boolean","description":"Whether the custom descriptor is enabled.","const":true,"examples":[true]},"name":{"type":"string","description":"The descriptor name.","examples":["Example"]},"address":{"type":"string","description":"The descriptor address.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"city":{"type":"string","description":"The descriptor city.","examples":["Boston"]},"state":{"type":"string","description":"The descriptor state.","examples":["MA"]},"postal_code":{"type":"string","description":"The descriptor postal code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"type":"string","description":"The descriptor url.","examples":["https://example.com"]},"email":{"type":"string","description":"The descriptor email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The descriptor phone.","examples":["+12025550123"]}},"additionalProperties":false}},"additionalProperties":false},"site_gateway":{"type":"object","description":"The gateway provider.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the gateway provider.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The provider name.","examples":["Example"]}},"additionalProperties":false}},"additionalProperties":false}},"description":"Renewal summaries. Monetary values use major units of iso_currency and two-decimal rounding; historical negative values are retained. When currency is omitted, do not assume a denomination. Missing amount summaries other than amount_original_total return zero; invalid values, including null, are omitted. Related summaries may be unavailable, and related-ID arrays are bounded subsets rather than complete histories."},"type":"array","maxItems":25,"description":"Available renewals on the requested page; empty for no matches or a page beyond the results."},"total_count":{"description":"Number of available renewals matching all applicable dates, customer and other filters.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up. Zero for no matches; may exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_renewals/{subscription_renewal_id}":{"get":{"summary":"Get A Subscription Renewal","description":"Retrieve a subscription renewal, including payment amounts, status and available related resources. No query parameters are accepted.","operationId":"GetSubscriptionRenewal","x-api-permission-description":"Allows the retrieving of subscription renewals.","x-api-permission":"subscription_renewal:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetSubscriptionRenewal.md","tags":["Subscription Renewals"],"parameters":[{"in":"path","name":"subscription_renewal_id","description":"20 character RevCent ID of the subscription renewal to retrieve. Obtain it from GetSubscriptionRenewals.","required":true,"schema":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The requested subscription renewal and its available related resources.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the retrieval succeeded; it does not establish a successful renewal payment.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Renewal creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"amount":{"description":"Alias of amount_total in major units of iso_currency; present when that total is available.","type":"number","format":"float","examples":[149.99]},"amount_original_total":{"description":"Original renewal total in major units of iso_currency, rounded to two decimals. Omitted when unavailable or invalid; historical signed values are retained.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Current renewal total. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Gross renewal payment amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net renewal payment amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Renewal payment fees. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Captured renewal amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Settled renewal amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Remaining renewal amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Refunded renewal amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","type":"number","format":"float","examples":[3.21]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID; returned together with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned together with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable. Optional historical text is preserved.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available historical customer email text; omitted when unavailable or empty.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"Available customer phone number, using its international form when available.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs; text, order and duplicates are preserved.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","description":"Customer status: Chargeback takes precedence over Fraud Detected, Blocked, Disabled and Enabled. It is independent of the renewal display status.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its saved case. Omitted when unavailable or unrecognized; no currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Available live-mode flag for the renewal; omitted when unavailable.","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"description":"Recognized payment-type ID/name pair, or null when unavailable: Credit Card, PayPal, Offline Payment or Check.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"product":{"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the product.","title":"Product ID","type":"string","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"The product name.","examples":["AV 2017"]},"quantity":{"description":"Available product quantity as a safe integer; historical zero and negative values are retained.","type":"integer","examples":[1]},"price":{"description":"The purchase price specific to the product.","type":"number","format":"float","examples":[49.99]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product.","examples":[true]},"is_trial":{"type":"boolean","description":"Whether the product is a trial product.","examples":[false]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["av_2017101"]},"sku":{"type":"string","description":"The product SKU.","examples":["av_2017"]},"description":{"type":"string","description":"The product description.","examples":["Example description"]},"list_price":{"type":"number","description":"The product list price.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."},"url":{"type":"string","description":"Available product link text. Missing values return an empty string; invalid nonstring values are omitted.","examples":["https://example.com"]},"total_amount":{"type":"number","description":"Extended product amount based on the available unit price and whole-number quantity, rounded to two decimals in the renewal currency. Historical signed values are retained; omitted when unavailable or invalid.","examples":[0]}},"type":"object","description":"Available product and renewal product-sale summary; omitted when unavailable. Prices use the renewal currency when available; historical safe-integer quantities are retained."},"third_party_shop":{"description":"Available associated User Shop ID/name summary, or null.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":["object","null"]},"is_overdue":{"description":"Available renewal overdue flag; false when unavailable. Invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"ship_to":{"type":"object","additionalProperties":false,"description":"Available delivery-address fields for the associated subscription; omitted when unavailable. Historical text and empty strings are preserved.","properties":{"first_name":{"type":"string","description":"The shipping first name.","examples":["George"]},"last_name":{"type":"string","description":"The shipping last name.","examples":["Washington"]},"address_line_1":{"type":"string","description":"The shipping first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The shipping second address line.","examples":["West Wing"]},"city":{"type":"string","description":"The shipping city.","examples":["Washington"]},"state":{"type":"string","description":"The shipping state.","examples":["DC"]},"zip":{"type":"string","description":"The shipping ZIP and or postal code.","examples":["20500"]},"company":{"type":"string","description":"The shipping company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available delivery email text, including historical values and empty strings.","examples":["georgew@whitehouse.gov"]},"phone":{"type":"string","description":"The shipping phone.","examples":["1234567890"]}}},"subscription_profile":{"description":"Available subscription billing configuration, or an empty object when unavailable. Optional historical fields may be omitted.","type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the subscription profile.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"name":{"description":"Subscription profile name","type":"string","examples":["Monthly"]},"description":{"description":"Subscription profile description.","type":"string","examples":["My sub profile."]},"occurrences":{"description":"Available indefinite or specific renewal-limit setting.","type":"string","enum":["indefinite","specific"],"examples":["indefinite","specific"]},"occurrences_value":{"description":"Available saved occurrence count; historical safe integers are preserved.","type":"integer","examples":[2]},"subscription_specific":{"description":"Available custom-profile classification, independent of whether its subscription association is available. Defaults to false when unavailable; invalid nonboolean values are omitted.","type":"boolean","examples":[false]},"subscription_id":{"type":["string","null"],"description":"Associated subscription's 20 character RevCent ID, or null when unavailable.","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"frequency_unit":{"description":"Available interval settings when frequency is unit; otherwise null. May be partial or null when settings are unavailable.","type":["object","null"],"additionalProperties":false,"properties":{"unit_value":{"description":"Saved interval count used with unit; historical safe integers are preserved.","type":"integer","examples":[3]},"unit":{"description":"Saved interval unit, such as days, weeks, months or years; historical text is preserved.","type":"string","examples":["months"]}}},"frequency":{"description":"Available schedule type: unit, calendar or fiscal. Missing/null values default to unit; unrecognized text is omitted.","type":"string","enum":["unit","calendar","fiscal"],"examples":["unit","calendar","fiscal"]},"frequency_calendar":{"type":["object","null"],"description":"Available saved calendar settings, which can be partial or null; presence alone does not establish the active schedule.","properties":{"calendar_unit":{"type":"string","description":"Saved calendar unit, such as day, week or month.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_parent":{"type":"string","description":"Saved enclosing calendar interval, such as week, month or year.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"calendar_value":{"type":"integer","description":"Saved position within the enclosing calendar interval; historical safe integers are preserved.","examples":[0]}},"additionalProperties":false},"frequency_fiscal":{"type":["object","null"],"description":"Available saved fiscal quarter/year settings, which can be partial or null; presence alone does not establish the active schedule.","properties":{"fiscal_unit":{"type":"string","description":"Saved fiscal interval, commonly quarter or year.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_setting":{"type":"string","description":"Saved fiscal schedule setting, commonly standard or infrequent.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fiscal_value":{"type":["integer","null"],"description":"Saved fiscal interval count; null may be returned and historical safe integers are preserved.","examples":[0]}},"additionalProperties":false}}},"subscription_id":{"description":"Associated subscription's 20 character RevCent ID; omitted when unavailable.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs; text, order and duplicates are preserved.","maxItems":50},"updated_date_unix":{"description":"Renewal update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to 50 distinct available related sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to 50 distinct available related product sale IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent ID of the related shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to 50 distinct available related shipment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"tax":{"items":{"description":"20 character RevCent ID of the related tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 distinct available related tax IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"discounts":{"items":{"description":"20 character RevCent ID of the related discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to 50 distinct available related discount IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to 50 distinct available related trial IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to 50 distinct available related subscription IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the related transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to 50 distinct available related transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"ai_threads":{"items":{"description":"20 character RevCent ID of the related AI Thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to 50 distinct available related AI Thread IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Ordered by creation time, newest first within the selected subset; not a globally newest selection.","maxItems":50,"uniqueItems":true},"ai_assistants":{"items":{"description":"20 character RevCent ID of the related AI Assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to 50 distinct available related AI Assistant IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to 50 distinct available related PayPal transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to 50 distinct available related offline payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the related check payment.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to 50 distinct available related check payment IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to 50 distinct available related salvage transaction IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to 50 distinct available related pending refund IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to 50 distinct available related chargeback IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to 50 distinct available related fraud detection IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"api_calls":{"items":{"description":"20 character RevCent ID of the related API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to 50 distinct available related API call IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","maxItems":50,"uniqueItems":true},"status":{"type":"string","description":"Renewal display status, independent of customer.status. Unavailable or unrecognized statuses return Error; qualifying fraud or chargebacks can override the renewal status.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount_to_salvage":{"type":"number","description":"Renewal amount designated for recovery. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","examples":[0]},"amount_discounted":{"type":"number","description":"Discounted renewal amount. In major units of iso_currency, rounded to two decimals. Missing or null values return zero; other invalid values are omitted. Historical signed values are retained.","examples":[0]},"shipping_amount":{"type":"number","description":"Total shipping amount across available associated shipping records, independent of the bounded shipping ID array. In major units of iso_currency. Zero when unavailable or invalid; rounded to two decimals using half-even rounding.","examples":[0]},"tax_amount":{"type":"number","description":"Total tax amount across available associated tax records, independent of the bounded tax ID array. In major units of iso_currency. Zero when unavailable or invalid; rounded to two decimals using half-even rounding.","examples":[0]},"payment_profile":{"type":["object","null"],"description":"Available Payment Profile ID/name summary, or null when unavailable.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the associated Payment Profile.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"Name of the associated Payment Profile.","examples":["Example"]}},"additionalProperties":false},"gateway_details":{"type":["object","null"],"description":"Available gateway summaries for the successful transaction, or null when the enabled User Gateway or provider summary is unavailable.","properties":{"user_gateway":{"type":"object","description":"The account gateway.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the account gateway.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]},"custom_descriptor":{"type":["object","null"],"description":"Available enabled statement-descriptor settings, or null. Fields may be partial and do not guarantee the text ultimately displayed by a payment provider.","properties":{"enabled":{"type":"boolean","description":"Whether the custom descriptor is enabled.","const":true,"examples":[true]},"name":{"type":"string","description":"The descriptor name.","examples":["Example"]},"address":{"type":"string","description":"The descriptor address.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"city":{"type":"string","description":"The descriptor city.","examples":["Boston"]},"state":{"type":"string","description":"The descriptor state.","examples":["MA"]},"postal_code":{"type":"string","description":"The descriptor postal code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"type":"string","description":"The descriptor url.","examples":["https://example.com"]},"email":{"type":"string","description":"The descriptor email.","examples":["alex@example.com"]},"phone":{"type":"string","description":"The descriptor phone.","examples":["+12025550123"]}},"additionalProperties":false}},"additionalProperties":false},"site_gateway":{"type":"object","description":"The gateway provider.","properties":{"id":{"type":"string","description":"20 character RevCent ID of the gateway provider.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The provider name.","examples":["Example"]}},"additionalProperties":false}},"additionalProperties":false},"ai_voice_agents":{"type":"array","description":"Up to 50 distinct available related AI Voice Agent IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Returned IDs retain their association order.","items":{"type":"string","description":"20 character RevCent ID of the related AI Voice Agent.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"uniqueItems":true},"ai_voice_calls":{"type":"array","description":"Up to 50 distinct available related AI Voice Call IDs. This may be an incomplete subset; an empty array does not establish that no relationships exist. Ordered by creation time, newest first within the selected subset; not a globally newest selection.","items":{"type":"string","description":"20 character RevCent ID of the related AI Voice Call.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":50,"uniqueItems":true}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/subscription_renewals/{subscription_renewal_id}/refund":{"post":{"summary":"Refund A Subscription Renewal","description":"Refund a subscription renewal using the subscription renewal ID. If partially refunding, provide the amount property in the request body. If the amount property is not provided, the subscription renewal will be refunded entirely.","operationId":"RefundSubscriptionRenewal","x-api-permission-description":"Allows the refunding of subscription renewals.","x-api-permission":"subscription_renewal:refund","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RefundSubscriptionRenewal.md","tags":["Subscription Renewals"],"parameters":[{"in":"path","name":"subscription_renewal_id","description":"The subscription renewal ID","required":true,"schema":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount to refund. If not provided the entire subscription renewal amount will be refunded.","type":"number","format":"float","examples":[129.99]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"amount":{"description":"The amount refunded.","type":"number","format":"float","examples":[129.99]},"subscription_id":{"description":"The 20 character RevCent ID of the related subscription. Omitted when the related subscription is unavailable.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"subscription_renewal_id":{"type":"string","description":"A 20 character subscription renewal ID.","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the refund."},"result":{"type":"string","examples":["Pending refund created for subscription renewal."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax":{"get":{"summary":"Get Taxes","description":"Retrieve a page of tax records, including payment summaries, tax rates and available customer and Tax Profile details.","operationId":"GetTaxes","x-api-permission-description":"Allows the retrieving of taxes.","x-api-permission":"tax:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The date range must be strictly shorter than 9,900 days unless customer_id is supplied. Unsupported query parameters are rejected.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTaxes.md","tags":["Tax"],"parameters":[{"description":"Inclusive start of the tax creation date range, as nonnegative Unix seconds. Required together with date_end; equal endpoints return an empty result.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Exclusive end of the tax creation date range, as nonnegative Unix seconds. Must not precede date_start. The range must be strictly shorter than 9,900 days unless customer_id is supplied.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of tax records per page, from 1 to 25. There is no default when omitted.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20. Zero selects page one. A page beyond the matching results is empty; narrow the date range or filters to access results beyond page 20.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"description":"Filter by up to 50 campaign IDs, each a 20 character RevCent ID. Repeat this parameter for multiple values; any selected campaign may match.","name":"campaign_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"description":"Filter by up to 50 three-letter currency codes. Lowercase input is accepted as uppercase for matching. Repeat this parameter for multiple values.","name":"currency_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","examples":["USD","EUR"]}},"style":"form","explode":true},{"description":"Filter by credit_card, paypal, offline or check_direct. Repeat this parameter to match any selected payment type; at most 50 values are accepted.","name":"payment_type_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]}},"style":"form","explode":true},{"description":"Filter by up to 50 shop IDs, each a 20 character RevCent ID. Repeat this parameter for multiple values; any selected shop may match.","name":"shop_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"description":"Filter by nocapture, captured, settled, refund or void for payment status, and fraud or chargeback for flagged records. Repeat this parameter for multiple values, up to 50. All values within this filter use OR, including fraud and chargeback; different filters use AND. These categories differ from the returned display status.","name":"status_filter","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["nocapture","captured","settled","refund","void","fraud","chargeback"],"examples":["nocapture","captured","refund","fraud"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Names contain 1–100 characters and values 1–255. Supply JSON objects or indexed name/value query parameters. Different names must all match; multiple values for one name match alternatively. METADATA_NAME_EXISTS matches the presence of a name regardless of its value.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose tax records to retrieve. Only one customer ID is accepted. This removes only the date-range length ceiling; both dates remain required and continue to filter results.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tax records and pagination information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval, not successful tax payment.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of tax records returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Selected page; a requested zero selects page one. Requests above 20 are rejected.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Tax record creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The tax record's 20 character RevCent ID, for GetTax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"amount_original_total":{"description":"Original tax obligation before subsequent adjustments.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Current tax obligation after recorded refunds, debits and void adjustments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Tax payments captured or settled, after applicable refunds and debits and before payment fees.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net tax payment amount after attributed payment fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Net payment fees attributed to this tax record.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Net captured tax payments awaiting settlement, after applicable refunds and debits.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Net settled tax payments after applicable refunds and debits.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Outstanding tax balance; historical signed values may be returned.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Tax amount recorded as refunded or otherwise debited. It does not by itself confirm funds received by the customer.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"Tax balance recorded for recovery; not necessarily the entire outstanding balance.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID, returned with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable or unusable. Individual optional fields may be omitted independently.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text, including historical values.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"Available customer phone number, using its international form when available.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates; not necessarily complete.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","description":"Customer status: Enabled, Disabled, Blocked, Fraud Detected or Chargeback. This describes the customer independently of the tax payment status.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its case. Omitted when unavailable or unrecognized; no USD or other currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"description":"Recognized ID/name pair for Credit Card, PayPal, Offline Payment or Check; null when unavailable or unrecognized.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"20 character RevCent ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"rate":{"description":"Tax rate expressed as a fraction: 0.07 represents 7%. Numeric precision and historical signed values are preserved. Returns zero when not provided; otherwise omitted when unavailable or invalid.","type":"number","format":"float","examples":[0.07]},"name":{"description":"Available tax name, including empty or historical text; omitted when unavailable or invalid.","type":"string","examples":["Tax Profile: Florida All"]},"description":{"description":"Available tax description, including empty or historical text; omitted when unavailable or invalid.","type":"string","examples":["Tax profile for Florida."]},"third_party_shop":{"description":"Available associated User Shop ID/name summary; null when unavailable or unusable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":["object","null"]},"tax_profile":{"description":"Available Tax Profile summary; null when unavailable or unusable.","type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the tax profile.","type":"string","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"name":{"description":"The tax profile name.","type":"string","examples":["Florida All"]},"is_third_party_integration":{"description":"Whether this profile has an available configured integration and provider summary in this response. False does not prove that no provider calculated the tax.","type":"boolean","examples":[false]},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Available configured User Third Party Integration with its provider definition; otherwise null.","properties":{"id":{"description":"The account integration's 20 character RevCent ID, for GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available account integration name.","examples":["My TaxJar Account"]},"third_party":{"type":"object","description":"Available provider/catalog definition associated with the account integration.","additionalProperties":false,"properties":{"id":{"description":"The provider definition's 20 character RevCent ID, for GetSiteThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available provider display name.","examples":["TaxJar"]}}}}}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates; not necessarily complete.","maxItems":50},"updated_date_unix":{"description":"Tax record update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the related sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten distinct available related sale IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the related product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten distinct available related product sale IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent ID of the related shipping.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to ten distinct available related shipping IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the related trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to ten distinct available related trial IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent ID of the related subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to ten distinct available related subscription IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the related subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to ten distinct available related subscription renewal IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the related transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten distinct available related transaction IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the related PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to ten distinct available related PayPal transaction IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the related offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to ten distinct available related offline payment IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the related check payment.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to ten distinct available related check payment IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the related salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten distinct available related salvage transaction IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent ID of the related pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten distinct available related pending refund IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the related chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to ten distinct available related chargeback IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the related fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to ten distinct available related fraud detection IDs in association order. This may be an incomplete subset; an empty array does not establish that no relationships exist.","maxItems":10,"uniqueItems":true},"status":{"type":"string","description":"Tax payment display status, separate from customer status and status_filter categories. May include Fraud Detected or Chargeback. Error indicates unavailable or unrecognized status.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"Tax amounts are in major units of iso_currency, rounded to two decimal places. The ten financial summaries can contain signed values and are omitted when unavailable or invalid; omission does not mean zero. Do not assume a currency when iso_currency is absent."},"type":"array","maxItems":25,"description":"Available tax records in newest-first creation order with deterministic ties; empty when no records match or the page is beyond the results."},"total_count":{"description":"Number of available tax records matching the date range and all applicable filters, including customer_id when supplied.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero when no records match. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax/{tax_id}":{"get":{"summary":"Get A Tax","description":"Retrieve one tax record, including its payment status, financial amounts and available related-resource summaries. Archived records remain retrievable. No query parameters are accepted.","operationId":"GetTax","x-api-permission-description":"Allows the retrieving of taxes.","x-api-permission":"tax:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTax.md","tags":["Tax"],"parameters":[{"in":"path","name":"tax_id","description":"20 character RevCent ID of the tax record to retrieve, available from GetTaxes.","required":true,"schema":{"description":"20 character RevCent ID of the tax record to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tax record details. Financial amounts are in major units of iso_currency, rounded to two decimal places. Amounts may be signed and are omitted when unavailable; do not assume a currency when iso_currency is absent. Related-ID arrays are bounded summaries, not complete histories or a guarantee of the globally newest records. Empty arrays do not establish that no related records exist.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Tax record creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The requested tax record's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"amount_original_total":{"description":"Original tax obligation before subsequent adjustments.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Current tax obligation after recorded refunds, debits and void adjustments.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Tax payments captured or settled, after applicable refunds and debits and before payment fees.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Net tax payment amount after attributed payment fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Net payment fees attributed to this tax record.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Net captured tax payments awaiting settlement, after applicable refunds and debits.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Net settled tax payments after applicable refunds and debits.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Outstanding tax balance; historical signed values may be returned.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Tax amount recorded as refunded or otherwise debited. It does not by itself confirm funds received by the customer.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"Tax balance recorded for recovery; not necessarily the entire outstanding balance.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID, returned with campaign_name.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name, returned with campaign_id.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable or unusable. Individual optional fields may be omitted independently.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code; omitted when unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available historical customer email text, without a guarantee of validity or delivery.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available customer metadata name/value pairs, preserving text, order and duplicates.","maxItems":50},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"type":"string","description":"Customer status, separate from the payment status of this tax record.","enum":["Enabled","Disabled","Blocked","Fraud Detected","Chargeback"],"examples":["Enabled"]}}},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving saved case. Omitted when unavailable or unrecognized; no USD or other currency is assumed.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether this tax record belongs to live mode (true) or test mode (false).","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"description":"Recognized ID/name pair for Credit Card, PayPal, Offline Payment or Check; null when unavailable or unrecognized.","properties":{"id":{"type":"string","enum":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"],"description":"System ID corresponding to the payment type name.","examples":["KnQ0KlNE6kf5mobyV0pN","ALkMK9pqgzfvgrqjlMVL","1rdzjX2rrkcNjPXMEvOm","vEZoAZrZL4S6WG4Ryzo1"]},"name":{"type":"string","enum":["Credit Card","PayPal","Offline Payment","Check"],"description":"Name corresponding to the payment type ID.","examples":["Credit Card","PayPal","Offline Payment","Check"]}}},"rate":{"description":"Tax rate expressed as a fraction: 0.07 represents 7%. Numeric precision and historical signed values are preserved. Returns zero when not provided; otherwise omitted when unavailable or invalid.","type":"number","format":"float","examples":[0.07]},"name":{"description":"Tax name; an empty string when absent and omitted when unavailable.","type":"string","examples":["Tax Profile: Florida All"]},"description":{"description":"Tax description; an empty string when absent and omitted when unavailable.","type":"string","examples":["Tax profile for Florida."]},"third_party_shop":{"description":"Available associated User Shop ID/name summary; null when unavailable or unusable.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"The user shop name.","type":"string","examples":["My Store"]}},"type":["object","null"]},"tax_profile":{"description":"Available Tax Profile summary; null when unavailable or unusable.","type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent tax profile ID.","type":"string","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"name":{"description":"The tax profile name.","type":"string","examples":["Florida All"]},"is_third_party_integration":{"description":"Whether this profile has an available configured integration and provider summary in this response. False does not prove that no provider calculated the tax.","type":"boolean","examples":[false]},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Available configured User Third Party Integration with its provider definition; otherwise null.","properties":{"id":{"description":"The account integration's 20 character RevCent ID, for GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available account integration name.","examples":["My TaxJar Account"]},"third_party":{"type":"object","description":"Available provider/catalog definition associated with the account integration.","additionalProperties":false,"properties":{"id":{"description":"The provider definition's 20 character RevCent ID, for GetSiteThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available provider display name.","examples":["TaxJar"]}}}}}}},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates; not necessarily complete.","maxItems":50},"updated_date_unix":{"description":"Tax record update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten unique available sale IDs, newest first within the returned subset. Retrieve individual records with GetSale.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten unique available product sale IDs, newest first within the returned subset. Retrieve individual records with GetProductSale.","maxItems":10,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent shipping ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to ten unique available shipment IDs, newest first within the returned subset. Retrieve individual records with GetShipment.","maxItems":10,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Up to ten unique available trial IDs, newest first within the returned subset. Retrieve individual records with GetTrial.","maxItems":10,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to ten unique available subscription IDs, newest first within the returned subset. Retrieve individual records with GetSubscription.","maxItems":10,"uniqueItems":true},"subscription_renewals":{"items":{"description":"20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Up to ten unique available subscription renewal IDs, newest first within the returned subset. Retrieve individual records with GetSubscriptionRenewal.","maxItems":10,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten unique available credit-card transaction IDs, newest first within the returned subset. Retrieve individual records with GetTransaction.","maxItems":10,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to ten unique available PayPal transaction IDs, newest first within the returned subset. Retrieve individual records with GetPayPalTransaction.","maxItems":10,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to ten unique available offline payment IDs, newest first within the returned subset. Retrieve individual records with GetOfflinePayment.","maxItems":10,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent check direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to ten unique available check IDs, newest first within the returned subset. Retrieve individual records with GetCheckDirect.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten unique available salvage transaction IDs, newest first within the returned subset. Retrieve individual records with GetSalvageTransaction.","maxItems":10,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten unique available pending refund IDs, newest first within the returned subset. Retrieve individual records with GetPendingRefund.","maxItems":10,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to ten unique available chargeback IDs, newest first within the returned subset. Retrieve individual records with GetChargeback.","maxItems":10,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to ten unique available fraud detection IDs, newest first within the returned subset. Retrieve individual records with GetFraudDetection.","maxItems":10,"uniqueItems":true},"api_calls":{"items":{"description":"20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to ten unique available API call IDs, newest first within the returned subset. Retrieve individual records with GetAPICall.","maxItems":10,"uniqueItems":true},"status":{"type":"string","description":"Tax payment status, separate from customer status. Returns Error when the payment status is unavailable or unrecognized.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax/{tax_id}/refund":{"post":{"summary":"Refund A Tax","description":"Refund a tax using the tax ID. If partially refunding, provide the amount property in the request body. If the amount property is not provided, the tax will be refunded entirely.","operationId":"RefundTax","x-api-permission-description":"Allows the refunding of taxes.","x-api-permission":"tax:refund","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RefundTax.md","tags":["Tax"],"parameters":[{"in":"path","name":"tax_id","description":"The tax ID","required":true,"schema":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount to refund. If not provided the entire tax amount will be refunded.","type":"number","format":"float","examples":[129.99]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"amount":{"description":"The amount refunded.","type":"number","format":"float","examples":[129.99]},"tax_id":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the refund."},"result":{"type":"string","examples":["Pending refund created for tax."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax_profiles":{"get":{"summary":"Get Tax Profiles","description":"Retrieve a page of Tax Profile summaries, including campaign applicability and available tax-service integration details. Only limit and page query parameters are supported.","operationId":"GetTaxProfiles","x-api-permission-description":"Allows the retrieving of tax profiles.","x-api-permission":"tax_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTaxProfiles.md","tags":["Tax"],"parameters":[{"description":"Required number of Tax Profiles per page, from 1 to 25. There is no default when omitted.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20. Zero selects page one. A page beyond the matching results returns an empty list.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tax Profile summaries and pagination information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of profiles returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Returned page number. A request for page zero selects page one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the Tax Profile, for use with GetTaxProfile.","type":"string","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"name":{"description":"Tax Profile name, when available. Empty text may be returned.","type":"string","examples":["My Tax Profile"]},"description":{"description":"Tax Profile description, when available. Empty text may be returned.","type":"string","examples":["The tax profile used for calculating taxes."]},"enabled":{"description":"Whether the Tax Profile is enabled; omitted when unavailable. Disabled profiles are included in this list.","type":"boolean","examples":[true]},"campaign_filter":{"type":"array","description":"Available campaigns associated with this Tax Profile’s applicability settings, in configured order; duplicates may be returned. Unavailable campaigns are omitted, so an empty array does not necessarily mean the profile applies to every campaign. This response field is not a supported query parameter. Retrieval fails if a selected profile has more than 500 configured campaign entries.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"Campaign name, when available. Empty text may be returned.","type":"string","examples":["My Campaign"]}}},"maxItems":500},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Available account integration and its provider definition; null when the complete integration summary is unavailable. Individual names may be omitted.","properties":{"id":{"description":"20 character RevCent ID of the account integration, for use with GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available account integration name, including empty text.","examples":["My TaxJar account"]},"third_party":{"type":"object","description":"Provider definition associated with the account integration.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the provider definition, for use with GetSiteThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available provider display name, including empty text.","examples":["TaxJar"]}}}}},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Tax Profiles in descending creation order with deterministic ties. Empty when no profiles match or the requested page is beyond the results."},"total_count":{"description":"Total number of available Tax Profiles in your account, including disabled profiles.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total number of pages at the requested limit, rounded up; zero when no profiles are available. This can exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Tax Profile","description":"Create a Tax Profile, which will issue a unique Tax Profile ID.","operationId":"CreateTaxProfile","x-api-permission-description":"Allows the creation of tax profiles.","x-api-permission":"tax_profile:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateTaxProfile.md","tags":["Tax"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The tax profile name. Must be unique across all tax profiles.","type":"string","examples":["My Tax Profile"]},"description":{"description":"The tax profile description.","type":"string","examples":["The tax profile used for managing taxs."]},"enabled":{"description":"Whether the tax profile is currently enabled.","type":"boolean","examples":[true]},"campaign_filter":{"type":"array","description":"An array of campaign ID's to filter by. If provided, only sales, subscription renewals and trial expiration payments originating from the specified campaigns will calculate tax using this tax profile. If not provided, all sales, subscription renewals and trial expiration payments will calculate tax using this tax profile. Get a list of campaign ID's using the GetCampaigns operation.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"third_party_integration":{"type":"string","description":"The existing user third party integration ID to associate with this tax profile. The third party integration will be used for tax calculations. The third party integration must be of type 'tax'. Get a list of user third party integrations using the GetUserThirdPartyIntegrations operation.","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","third_party_integration"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tax_profile_id":{"type":"string","description":"A 20 character tax profile ID.","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"result":{"type":"string","examples":["Tax profile created."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax_profiles/{tax_profile_id}":{"get":{"summary":"Get A Tax Profile","description":"Retrieve one Tax Profile, including campaign applicability and available tax-service integration details. Archived and disabled profiles remain retrievable. No query parameters are accepted.","operationId":"GetTaxProfile","x-api-permission-description":"Allows the retrieving of tax profiles.","x-api-permission":"tax_profile:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTaxProfile.md","tags":["Tax"],"parameters":[{"in":"path","name":"tax_profile_id","description":"20 character RevCent ID of the Tax Profile to retrieve, available from GetTaxProfiles.","required":true,"schema":{"description":"20 character RevCent ID of the Tax Profile to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tax Profile details and available campaign and integration summaries.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Profile creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the requested Tax Profile.","type":"string","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"name":{"description":"Tax Profile name, when available. Empty text may be returned.","type":"string","examples":["My Tax Profile"]},"description":{"description":"Tax Profile description, when available. Empty text may be returned.","type":"string","examples":["The tax profile used for calculating taxes."]},"enabled":{"description":"Whether the Tax Profile is enabled; omitted when unavailable. Disabled profiles remain retrievable.","type":"boolean","examples":[true]},"campaign_filter":{"type":"array","description":"Available campaigns associated with this Tax Profile’s applicability settings, in configured order; duplicates may be returned. Unavailable campaigns are omitted, so an empty array does not necessarily mean the profile applies to every campaign. This response field is not a supported query parameter. Retrieval fails if the profile has more than 500 configured campaign entries.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the campaign.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"Campaign name, when available. Empty text may be returned.","type":"string","examples":["My Campaign"]}}},"maxItems":500},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Available account integration and its provider definition; null when the complete integration summary is unavailable. Individual names may be omitted.","properties":{"id":{"description":"20 character RevCent ID of the account integration, for use with GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available account integration name, including empty text.","examples":["My TaxJar account"]},"third_party":{"type":"object","description":"Provider definition associated with the account integration.","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the provider definition, for use with GetSiteThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"type":"string","description":"Available provider display name, including empty text.","examples":["TaxJar"]}}}}},"updated_date_unix":{"description":"Profile update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Tax Profile","description":"Edit a previously created tax profile using the tax profile ID. Only supplied fields are updated.","operationId":"EditTaxProfile","x-api-permission-description":"Allows the editing of tax profiles.","x-api-permission":"tax_profile:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditTaxProfile.md","tags":["Tax"],"parameters":[{"in":"path","name":"tax_profile_id","description":"The tax profile ID","required":true,"schema":{"type":"string","description":"A 20 character tax profile ID.","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The tax profile name. Must be unique across all tax profiles.","type":"string","examples":["Example"]},"description":{"description":"The tax profile description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the tax profile is currently enabled.","type":"boolean"},"campaign_filter":{"type":"array","description":"An array of campaign ID's to filter by. If provided, only sales, subscription renewals and trial expiration payments originating from the specified campaigns will calculate tax using this tax profile. If not provided, all sales, subscription renewals and trial expiration payments will calculate tax using this tax profile. Get a list of campaign ID's using the GetCampaigns operation.","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"third_party_integration":{"type":"string","description":"The user third party integration ID to associate with this tax profile. The third party integration will be used for tax calculations. The third party integration must be of type 'tax'. Get a list of user third party integrations using the GetUserThirdPartyIntegrations operation.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tax_profile_id":{"type":"string","description":"A 20 character tax profile ID.","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tax_profiles/{tax_profile_id}/delete":{"post":{"summary":"Delete A Tax Profile","description":"Delete a specific tax profile using the tax profile ID and delete path.","operationId":"DeleteTaxProfile","x-api-permission-description":"Allows the deletion of tax profiles.","x-api-permission":"tax_profile:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteTaxProfile.md","tags":["Tax"],"parameters":[{"in":"path","name":"tax_profile_id","description":"The Tax Profile ID","required":true,"schema":{"type":"string","description":"A 20 character tax profile ID.","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tax_profile_id":{"type":"string","description":"A 20 character tax profile ID.","minLength":20,"maxLength":20,"examples":["P6qBoVaOVEsqggoPRqXj"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tracking_domains":{"get":{"summary":"Get Tracking Domains","description":"List tracking domains and their saved configuration, SSL status and DNS setup information. Disabled domains are included; archived and deleted domains are excluded. This operation does not refresh certificate status. Only limit and page query parameters are accepted.","operationId":"GetTrackingDomains","x-api-permission-description":"Allows the retrieving of tracking domains.","x-api-permission":"tracking_domain:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTrackingDomains.md","tags":["Tracking"],"parameters":[{"description":"Required maximum number of domains per page, from 1 through 25. There is no default. If repeated, the last effective value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 through 20; zero selects page 1. Pages above 20 are rejected even when total_pages is larger. An allowed page beyond the results returns an empty array. If repeated, the last effective value is used.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tracking domains and their saved configuration, SSL status and DNS setup information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of tracking domains returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Selected page, with requested zero normalized to one. Requests above 20 are rejected.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"Tracking-domain configuration and saved SSL/DNS information. Returned settings and statuses do not establish current DNS publication, certificate validity or connectivity.","additionalProperties":false,"properties":{"created_date_unix":{"description":"Tracking-domain creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The tracking domain's 20 character RevCent ID, for GetTrackingDomain.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"Available display name, including empty or historical text.","type":"string","examples":["MyStore Domain"]},"description":{"description":"Tracking-domain description, including empty text; omitted when unavailable.","type":"string","examples":["The tracking domain for mystore.com"]},"enabled":{"description":"Whether the tracking domain is enabled. Disabled domains remain retrievable; this setting does not verify connectivity.","type":"boolean","examples":[true]},"domain":{"description":"Available domain associated with this tracking configuration.","type":"string","examples":["mystore.com"]},"url_parameter_sets":{"type":"array","description":"Up to 500 available URL parameter-set IDs in configured order, including duplicates. Unavailable references are omitted, so an empty array does not necessarily mean none are configured. Retrieve each set with GetUrlParameterSet.","items":{"description":"20 character RevCent URL parameter set ID.","type":"string","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"maxItems":500},"url_parameters":{"type":"array","description":"Up to 500 available URL-parameter settings in configured order. Empty names and historical text may be returned. Retrieval fails if a selected domain exceeds either 500-entry configuration limit.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"Configured URL query-parameter name. Historical and empty text may be returned.","type":"string","examples":["utm_source"]},"metadata_name":{"description":"Configured metadata name associated with the URL parameter. Empty text is preserved.","type":"string","examples":["utm_source"]},"default_value":{"description":"Configured default text for the URL parameter; an empty string is returned when unavailable or invalid.","type":"string","examples":[""]},"days":{"description":"Configured retention duration in days. Zero is valid; unavailable, invalid or negative values return 30.","type":"integer","minimum":0,"examples":[30]}}},"maxItems":500},"a_records":{"type":"array","description":"Saved A-record instructions for rctrk, portal and acp. Publish the exact returned names and targets in your domain's DNS; illustrative examples are not deployment targets. Empty when no target is available.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The A record name.","type":"string","enum":["rctrk","portal","acp"],"examples":["rctrk","portal","acp"]},"value":{"description":"Exact saved A-record target to publish.","type":"string","examples":["192.0.2.10"]}}},"maxItems":3},"ssl":{"type":"object","additionalProperties":false,"description":"Saved certificate status and available validation-record instructions; this list does not refresh certificate status.","properties":{"status":{"description":"Saved SSL status: NOT_INITIALIZED means initialization is unavailable or has not begun; PENDING_VALIDATION means validation is pending; VALIDATION_TIMED_OUT means validation timed out; ISSUED means a certificate was issued; FAILED means issuance failed. Begin setup with InitializeTrackingDomainSSL. These saved values do not guarantee current certificate usability.","type":"string","enum":["NOT_INITIALIZED","PENDING_VALIDATION","VALIDATION_TIMED_OUT","ISSUED","FAILED"],"examples":["NOT_INITIALIZED","PENDING_VALIDATION","VALIDATION_TIMED_OUT","ISSUED","FAILED"]},"cname_records":{"type":"array","description":"Available saved CNAME instruction for certificate validation. Use InitializeTrackingDomainSSL to begin setup, and publish the exact returned name and target in DNS.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"The CNAME record name.","type":"string","examples":["_0c67d86b899384d4c52a17ab"]},"value":{"description":"The certificate-validation CNAME target. Publish the exact value returned by RevCent in your DNS settings. The example is illustrative and must not be used as an actual validation target.","type":"string","examples":["_validation-token.certificates.example.net."]}}},"maxItems":1}}},"dns":{"type":"object","additionalProperties":false,"description":"DNS setup information based on saved configuration, not a fresh check of your published DNS records.","properties":{"status":{"description":"AWAITING_SSL means SSL issuance is not recorded; NOT_INITIALIZED means DNS setup has not begun; PENDING means setup is pending; COMPLETE means DNS setup information is available. COMPLETE does not prove that you published the required DNS records. Use InitializeTrackingDomainDNS for DNS setup and publish the exact returned A-record targets.","type":"string","enum":["AWAITING_SSL","NOT_INITIALIZED","PENDING","COMPLETE"],"examples":["AWAITING_SSL","NOT_INITIALIZED","PENDING","COMPLETE"]}}},"updated_date_unix":{"description":"Tracking-domain update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available tracking domains, newest first with stable ordering for equal creation times. Empty when none match or the requested page is beyond the results."},"total_count":{"description":"Total number of available tracking domains, including disabled domains and excluding archived or deleted domains.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total number of pages at the requested limit; zero when no domains match. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A Tracking Domain","description":"Create a Tracking Domain, which will issue a unique Tracking Domain ID.","operationId":"CreateTrackingDomain","x-additional-info":"After creating the tracking domain, the response will contain necessary A records in the 'a_records' array, which you will need to add to the domain's DNS. Once you have added the A records to your domain's DNS, you can begin the InitializeTrackingDomainSSL operation to initialize SSL for the domain. You can retrieve the required A records in the response when you first create the tracking domain, or you can use the GetTrackingDomain operation at any time to retrieve the A records.<br><br>Steps for DNS tracking:<br><br>1. Create a tracking domain using the CreateTrackingDomain operation.<br><br>2. Add the A records in the CreateTrackingDomain response to your domain's DNS settings.<br><br>3. Initialize SSL for the tracking domain using the InitializeTrackingDomainSSL operation.<br><br>4. Add the CNAME records in the InitializeTrackingDomainSSL response to your domain's DNS settings.<br><br>5. Complete the DNS tracking setup by performing the InitializeTrackingDomainDNS operation.","x-api-permission-description":"Allows the creation of tracking domains.","x-api-permission":"tracking_domain:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/tracking/revcent-trackjs","x-kb-name":"Tracking","x-md-link":"markdown/mcp/operation/CreateTrackingDomain.md","tags":["Tracking"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Tracking Domain name. Must be unique from other Tracking Domain names.","examples":["My Tracking Domain"]},"description":{"type":"string","description":"The Tracking Domain description.","examples":["This is my Tracking Domain."]},"domain":{"type":"string","description":"The Tracking Domain. The root domain, no subdomain such as 'www'. Only requests that come from the root domain will be tracked. Must be a valid domain that you own and have access to modify the DNS records for. For example, mydomain.com. Once created the domain cannot be modified.","examples":["mydomain.com"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","domain"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tracking_domain_id":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"a_records":{"items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The A record name..","examples":["Example"]},"value":{"type":"string","description":"The value for the A record.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array","description":"An array of A records that will need to be entered into your domain's DNS settings after creating the tracking domain. Once you have added the A records you can begin the InitializeTrackingDomainSSL operation."},"result":{"type":"string","examples":["Tracking Domain created. Please add all A records in the response ssl.a_records array to your domain DNS settings. After adding the A records, you can begin the InitializeTrackingDomainSSL operation to initialize SSL for the domain."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tracking_domains/{tracking_domain_id}":{"get":{"summary":"Get A Tracking Domain","description":"Retrieve one tracking domain and its configuration, SSL status and DNS setup information. Archived and disabled domains remain retrievable. Pending certificate status may be refreshed; saved information is returned when a refresh is unavailable. No query parameters are accepted.","operationId":"GetTrackingDomain","x-api-permission-description":"Allows the retrieving of tracking domains.","x-api-permission":"tracking_domain:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTrackingDomain.md","tags":["Tracking"],"parameters":[{"in":"path","name":"tracking_domain_id","description":"20 character RevCent ID of the tracking domain to retrieve, available from GetTrackingDomains.","required":true,"schema":{"description":"20 character RevCent ID of the tracking domain to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tracking-domain configuration and available SSL/DNS setup information.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Tracking-domain creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The requested tracking domain's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"description":"Available display name, including empty or historical text.","type":"string","examples":["MyStore Domain"]},"description":{"description":"Tracking-domain description, including empty text; omitted when unavailable.","type":"string","examples":["The tracking domain for mystore.com"]},"enabled":{"description":"Whether the tracking domain is enabled. Disabled domains remain retrievable; this setting does not verify connectivity.","type":"boolean","examples":[true]},"domain":{"description":"Available domain associated with this tracking configuration.","type":"string","examples":["mystore.com"]},"url_parameter_sets":{"type":"array","description":"Up to 500 available URL parameter-set IDs in configured order, including duplicates. Unavailable references are omitted, so an empty array does not necessarily mean none are configured. Retrieve each set with GetUrlParameterSet.","items":{"description":"A 20 character RevCent URL parameter-set ID.","type":"string","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"maxItems":500},"url_parameters":{"type":"array","description":"Up to 500 available URL-parameter settings in configured order. Empty names and historical text may be returned. Retrieval fails if either configuration array exceeds 500 entries.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"Configured URL query-parameter name. Historical and empty text may be returned.","type":"string","examples":["utm_source"]},"metadata_name":{"description":"Configured metadata name associated with the URL parameter. Empty text is preserved.","type":"string","examples":["utm_source"]},"default_value":{"description":"Configured default text; an empty string is returned when unavailable or invalid.","type":"string","examples":[""]},"days":{"description":"Configured retention duration in days. Zero is valid; unavailable, invalid or negative values return 30.","type":"integer","minimum":0,"examples":[30]}}},"maxItems":500},"a_records":{"type":"array","description":"Available A-record instructions for rctrk, portal and acp. Publish the exact returned names and targets in your domain's DNS; illustrative examples are not deployment targets. Empty when no target is available.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"A-record name to publish for this domain.","type":"string","enum":["rctrk","portal","acp"],"examples":["rctrk","portal","acp"]},"value":{"description":"Exact returned A-record target to publish.","type":"string","examples":["192.0.2.10"]}}},"maxItems":3},"ssl":{"type":"object","additionalProperties":false,"description":"Available certificate status and validation-record instructions. A pending status may be refreshed; saved information is used when refresh is unavailable.","properties":{"status":{"description":"NOT_INITIALIZED means initialization is unavailable or has not begun; PENDING_VALIDATION means validation is pending; VALIDATION_TIMED_OUT means validation timed out; ISSUED means a certificate was issued; FAILED means issuance failed. ISSUED does not guarantee current validity or connectivity. Begin setup with InitializeTrackingDomainSSL.","type":"string","enum":["NOT_INITIALIZED","PENDING_VALIDATION","VALIDATION_TIMED_OUT","ISSUED","FAILED"],"examples":["NOT_INITIALIZED","PENDING_VALIDATION","VALIDATION_TIMED_OUT","ISSUED","FAILED"]},"cname_records":{"type":"array","description":"Up to one available CNAME instruction for certificate validation. Publish the exact returned name and target. Saved instructions may be returned when a status refresh supplies no new record. Use InitializeTrackingDomainSSL to begin setup.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"description":"Returned CNAME record name to publish.","type":"string","examples":["_0c67d86b899384d4c52a17ab"]},"value":{"description":"The certificate-validation CNAME target. Publish the exact value returned by RevCent in your DNS settings. The example is illustrative and must not be used as an actual validation target.","type":"string","examples":["_validation-token.certificates.example.net."]}}},"maxItems":1}}},"dns":{"type":"object","additionalProperties":false,"description":"Available DNS setup information; this response does not verify your published DNS records.","properties":{"status":{"description":"AWAITING_SSL means SSL issuance is not available; NOT_INITIALIZED means DNS setup has not begun; PENDING means setup is pending; COMPLETE means DNS setup information is available. COMPLETE does not prove that you published the required DNS records. Use InitializeTrackingDomainDNS for setup and publish the exact returned A-record targets.","type":"string","enum":["AWAITING_SSL","NOT_INITIALIZED","PENDING","COMPLETE"],"examples":["AWAITING_SSL","NOT_INITIALIZED","PENDING","COMPLETE"]}}},"updated_date_unix":{"description":"Configuration update time in Unix seconds, not the time of a certificate-status check.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A Tracking Domain","description":"Edit a previously created Tracking Domain using the Tracking Domain ID. Only supplied fields are updated.","operationId":"EditTrackingDomain","x-api-permission-description":"Allows the editing of tracking domains.","x-api-permission":"tracking_domain:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditTrackingDomain.md","tags":["Tracking"],"parameters":[{"in":"path","name":"tracking_domain_id","description":"The Tracking Domain ID","required":true,"schema":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The Tracking Domain name. Must be unique from other Tracking Domain names.","examples":["Example"]},"description":{"type":"string","description":"The Tracking Domain description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"url_parameter_sets":{"type":"array","description":"An array of URL parameter set IDs. Must be valid URL parameter set(s) created in RevCent. Get a list of all URL parameter sets via the GetUrlParameterSets operation. If not provided, the existing URL parameter sets will remain unchanged. To remove all URL parameter sets, provide an empty array.","items":{"type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"url_parameters":{"type":"array","description":"A list of URL parameters to save specific to the domain. Use URL parameter sets instead of saving URL parameters separately for each domain. Using URL parameter sets provides a more organized and reusable approach.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"The URL parameter to save. For example, if the URL parameter is 'utm_source', then RevCent will save the value of the utm_source parameter for all visitors and purchases to your stores via RevCent's in house DNS tracking.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata_name":{"description":"The name to save the URL parameter as in RevCent's metadata. It is common practice to set the metadata_name as the same as the url_parameter. If left empty, RevCent will save the URL parameter value to metadata using the URL parameter as the metadata name. For example, if the URL parameter is 'utm_source', and the metadata_name is left empty, then RevCent will save the value of the utm_source URL parameter to metadata with the metadata name of 'utm_source'. If the URL parameter is 'utm_source', and the metadata_name is set to 'source', then RevCent will save the value of the utm_source URL parameter to the visitors' metadata with the metadata name of 'source'. Recommended to leave empty or set the same as url_parameter.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"default_value":{"description":"The default value to save for the URL parameter if the URL parameter is present in the URL but you wish to save a default value intead of the value in the URL. This is optional. If not provided, RevCent will save the value in the URL. For example, if the URL parameter is 'utm_source', but you want to save the value as 'organic' regardless of the actual utm_source value in the URL, then you would set the default_value to 'organic'. Recommended to leave empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"days":{"description":"The number of days to save the URL parameter name/value to a specific visitor, i.e. the cookie age for the visitor for the URL parameter. This is optional. If not provided, RevCent will use the default value of 30 days. Recommended value is 30.","type":"integer","examples":[0]}},"required":["url_parameter"]}},"enabled":{"type":"boolean"},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tracking_domain_id":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tracking_domains/{tracking_domain_id}/initialize_ssl":{"post":{"summary":"Initialize SSL for A Tracking Domain","description":"Initialize SSL for a specific tracking domain using the tracking domain ID.","operationId":"InitializeTrackingDomainSSL","x-additional-info":"Instructions:<br><br>1. Before running this operation, make sure you have already added the A records to the domain DNS, supplied in the response when you first created the tracking domain. Use the GetTrackingDomain operation to retrieve the required A records if necessary.<br><br>2. If the A records have been added, perform the InitializeTrackingDomainSSL operation and wait for a successful response containing the CNAME records found in the responses' ssl.cname_records array to add to your domain's DNS.<br><br>3. After adding the CNAME records to your domain, proceed to the InitializeTrackingDomainDNS operation to complete the process.","x-api-permission-description":"Allows the initialization of SSL for tracking domains.","x-api-permission":"tracking_domain:initialize_ssl","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/InitializeTrackingDomainSSL.md","tags":["Tracking"],"parameters":[{"in":"path","name":"tracking_domain_id","description":"The Tracking Domain ID","required":true,"schema":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tracking_domain_id":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"a_records":{"items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The A record name.","examples":["Example"]},"value":{"type":"string","description":"The value for the A record.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"type":"array","description":"An array of A records that will need to be entered into your domain's DNS settings after creating the tracking domain."},"ssl":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"string","description":"The current SSL status for the tracking domain.","enum":["NOT_INITIALIZED","PENDING_VALIDATION","VALIDATION_TIMED_OUT","ISSUED","FAILED"],"examples":["NOT_INITIALIZED"]},"cname_records":{"type":"array","description":"An array of CNAME records that will need to be entered into your domain's DNS settings in order to complete the SSL issuance process for the tracking domain. The CNAME records are essential and must be added to the domains' DNS in order to issue the SSL for the tracking domain.","items":{"type":"object","properties":{"name":{"type":"string","examples":["Example"]},"value":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Required A records could not be verified.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1002"],"examples":["E1002"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"a_records":{"type":"array","description":"A DNS records needed to complete domain configuration. Present when available for this failure.","items":{"type":"object","additionalProperties":false,"description":"A record.","properties":{"name":{"type":"string","description":"DNS record name.","examples":["Example"]},"value":{"type":"string","description":"Required DNS record value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tracking_domains/{tracking_domain_id}/initialize_dns":{"post":{"summary":"Initialize DNS for A Tracking Domain","description":"Initialize DNS for a specific tracking domain using the tracking domain ID.","operationId":"InitializeTrackingDomainDNS","x-additional-info":"You must have first added the necessary A records when you created the domain. Then you must have initialized SSL for the domain by completing the InitializeTrackingDomainSSL operation, which will provide necessary CNAME records to add to your domain's DNS. After you have added the required A records and CNAME records to your domain's DNS, you can run this operation to complete the DNS initialization process for the tracking domain.<br><br>RevCent will verify that all necessary DNS records are present before completing the initialization process. If any DNS records are missing, RevCent will return an error. If all necessary DNS records are present, and the SSL certificate has been issued, RevCent will complete the initialization process and the tracking domain will be ready for use.","x-api-permission-description":"Allows the initialization of DNS for tracking domains.","x-api-permission":"tracking_domain:initialize_dns","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/InitializeTrackingDomainDNS.md","tags":["Tracking"],"parameters":[{"in":"path","name":"tracking_domain_id","description":"The Tracking Domain ID","required":true,"schema":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"tracking_domain_id":{"type":"string","description":"A 20 character tracking domain ID.","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"result":{"type":"string","examples":["Tracking Domain DNS complete."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Required A records could not be verified.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1002"],"examples":["E1002"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"a_records":{"type":"array","description":"A DNS records needed to complete domain configuration. Present when available for this failure.","items":{"type":"object","additionalProperties":false,"description":"A record.","properties":{"name":{"type":"string","description":"DNS record name.","examples":["Example"]},"value":{"type":"string","description":"Required DNS record value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},{"type":"object","additionalProperties":false,"description":"Required CNAME records could not be verified, or certificate validation is still pending.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1008","E1009"],"examples":["E1008"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"cname_records":{"type":"array","description":"CNAME DNS records needed to complete domain configuration. Present when available for this failure.","items":{"type":"object","additionalProperties":false,"description":"CNAME record.","properties":{"name":{"type":"string","description":"DNS record name.","examples":["Example"]},"value":{"type":"string","description":"Required DNS record value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/tracking_visitors/{tracking_visitor_id}":{"get":{"summary":"Get A Tracking Visitor","description":"Retrieve one tracking visitor, including available sale associations, tracking-domain summaries and a limited excerpt of page-visit history. Archived visitors remain retrievable. No query parameters are accepted.","operationId":"GetTrackingVisitor","x-api-permission-description":"Allows the retrieving of tracking visitors.","x-api-permission":"tracking_visitor:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTrackingVisitor.md","tags":["Tracking"],"parameters":[{"in":"path","name":"tracking_visitor_id","description":"20 character RevCent ID of the tracking visitor to retrieve.","required":true,"schema":{"description":"20 character RevCent ID of the tracking visitor to retrieve.","type":"string","minLength":20,"maxLength":20,"examples":["o4G2JzbyzyCBOwnJ8gLd"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Tracking visitor details, available sale associations and a limited excerpt of tracking history.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful retrieval.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Tracking visitor creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The requested tracking visitor's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["o4G2JzbyzyCBOwnJ8gLd"]},"ip_address":{"type":"string","description":"Available recorded visitor IP-address text; historical or empty text may be returned.","examples":["123.456.789.0"]},"sales":{"type":"array","description":"Up to 500 associated sale summaries, each containing a sale ID. Order and duplicates are preserved. An association does not confirm successful payment. Unavailable associations are omitted; an empty array does not necessarily mean none were associated. Retrieval fails when more than 500 sale references are associated with the visitor.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"An associated sale's 20 character RevCent ID, for GetSale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]}}},"maxItems":500},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"Available tracking-domain summary associated with the visitor; null when unavailable.","properties":{"id":{"description":"A 20 character RevCent tracking-domain ID, for GetTrackingDomain.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"type":"string","description":"Available tracking-domain display name, including empty or historical text.","examples":["mystore.com"]},"domain":{"type":"string","description":"Available domain text, including empty or historical text.","examples":["mystore.com"]}}},"tracking_entries":{"type":"array","description":"Up to 50 available entries from an early, bounded portion of tracking history, in ascending creation order. Unusable entries may be omitted without replacement, so this is not complete history and the last returned entry is not necessarily the latest visit. Ordering among equal creation timestamps is unspecified.","items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Tracking entry creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"hostname":{"type":"string","description":"Available recorded hostname, distinct from host which can include a port. Historical or empty text may be returned.","examples":["mystore.com"]},"pathname":{"type":"string","description":"Available recorded path text, including historical or empty text.","examples":["/checkout"]},"referer":{"type":"string","description":"Available recorded referrer text, including historical or empty text.","examples":["https://mystore.com"]},"ip_address":{"type":"string","description":"Available recorded entry IP-address text, including historical or empty text.","examples":["123.456.789.0"]},"tracking_domain":{"type":["object","null"],"additionalProperties":false,"description":"Available tracking-domain summary associated with this entry; null when unavailable.","properties":{"id":{"description":"A 20 character RevCent tracking-domain ID, for GetTrackingDomain.","type":"string","minLength":20,"maxLength":20,"examples":["zGX7z0ggKKFAWg5XXmXa"]},"name":{"type":"string","description":"Available tracking-domain display name, including empty or historical text.","examples":["mystore.com"]},"domain":{"type":"string","description":"Available domain text, including empty or historical text.","examples":["mystore.com"]}}},"id":{"type":"string","description":"The tracking entry's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"initial_visit":{"type":"boolean","description":"Whether the entry is recorded as an initial visit. This flag is independent of the entry’s position in this array."},"host":{"type":"string","description":"Recorded host, including a port when present, such as example.com:8443. Historical or empty text may be returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"maxItems":50},"user_agent":{"type":"string","description":"Available recorded visitor user-agent text, including historical or empty text.","examples":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"A name paired to the value for the metadata object. Limited to 100 characters in length.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"A value paired to the name for the metadata object. Limited to 255 characters in length.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates. May be empty and is not guaranteed to be the complete metadata collection.","maxItems":50},"updated_date_unix":{"description":"Tracking visitor update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/transactions":{"get":{"summary":"Get Transactions","description":"Retrieve a page of transactions with their outcomes and available customer, payment-method and related-resource summaries. Results are ordered newest first.","operationId":"GetTransactions","x-api-permission-description":"Allows the retrieving of transactions.","x-api-permission":"transaction:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"The date_start, date_end, page and limit query parameters are required. Repeated date, pagination or customer_id parameters are rejected. Filter alternatives use OR within each group and AND across groups; metadata alternatives use OR for the same name and AND across different names.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTransactions.md","tags":["Transactions"],"parameters":[{"description":"Required inclusive start of the transaction creation interval, as a Unix timestamp in seconds. Both dates remain required with customer_id. Without customer_id, the interval cannot exceed 90 days.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799]},"style":"form"},{"description":"Required exclusive end of the transaction creation interval, as a Unix timestamp in seconds. Must be at or after date_start; equal endpoints return no transactions. A customer_id removes the 90-day span limit, but dates still filter results.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599]},"style":"form"},{"description":"Required number of transactions per page, from 1 through 25; there is no default.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 through 20. Zero selects page 1. A page beyond the matching results returns an empty array with the matching totals. Pages above 20 are rejected even when total_pages is larger.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1]},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by up to 50 distinct campaign IDs. Matching any selected campaign satisfies this filter. Explicit campaign selection replaces the default exclusion of campaigns configured to be hidden from transaction lists.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]}},"style":"form","explode":true},{"name":"shop_filter","in":"query","description":"Filter by up to 50 distinct user shop IDs. Matching any selected shop satisfies this filter.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},"style":"form","explode":true},{"name":"gateway_filter","in":"query","description":"Filter by up to 50 distinct account gateway IDs. Matching any selected gateway satisfies this filter.","required":false,"schema":{"type":"array","items":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}},"style":"form","explode":true},{"name":"payment_profile_filter","in":"query","description":"Filter by up to 50 distinct payment profile IDs. Matching any selected profile satisfies this filter.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]}},"style":"form","explode":true},{"name":"method_filter","in":"query","description":"Filter by the supported transaction methods. Supply up to 50 distinct values; matching any selected method satisfies this filter.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","pending_refund_process"],"examples":["sale_create","subscription_renew","trial_expire","salvage_transaction_process","pending_refund_process"]}},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by the supported status categories. Supply up to 50 distinct values; matching any selected category satisfies this filter. These categories are broader than the returned transaction status text.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["captured","settled","refund","void","complete"],"examples":["captured","complete"]}},"style":"form","explode":true},{"name":"result_filter","in":"query","description":"Filter by transaction outcome flags. Supply up to 50 distinct supported values; matching any selected outcome satisfies this filter.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["approved","declined","error","held"],"examples":["approved","declined","error","held"]}},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs, supplied as repeated JSON objects or bracket parameters such as metadata_filter[0][name] and metadata_filter[0][value]. Names contain 1–100 characters and values 1–255. Use METADATA_NAME_EXISTS as the value to match name presence. Alternatives for the same name use OR; different names use AND.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array"},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose transactions to retrieve. Both dates remain required, but the 90-day maximum interval does not apply.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of transaction summaries and pagination totals.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"The API response code: 1 means the GET request succeeded, regardless of the transactions' payment outcomes. See results[].result_code for each payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"current_count":{"description":"Number of transactions returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with zero normalized to one. Requests above 20 are rejected.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"total_count":{"description":"Number of eligible transactions matching all applicable dates, filters and access rules.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero when no transactions match. May exceed the maximum requestable page of 20.","type":"integer","minimum":0,"examples":[3]},"results":{"type":"array","maxItems":25,"description":"Available transactions ordered by descending creation time with deterministic ties. Beyond-last pages are empty and retain the matching totals.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The transaction's 20 character RevCent ID, for GetTransaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"created_date_unix":{"type":"integer","description":"Transaction creation time in Unix seconds.","examples":[1675367500]},"updated_date_unix":{"type":"integer","description":"Transaction update time in Unix seconds.","examples":[1675367500]},"result_code":{"type":"integer","minimum":0,"maximum":5,"description":"Transaction payment outcome: 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected. Separate from the response code indicating successful retrieval. Omitted when unavailable.","examples":[0]},"amount":{"type":"number","description":"Transaction amount; for a pending-refund attempt, the amount requested for refund.","examples":[129.99]},"amount_original_total":{"type":"number","description":"Recorded original transaction total.","examples":[139.99]},"amount_total":{"type":"number","description":"Recorded current transaction total.","examples":[124.55]},"amount_gross":{"type":"number","description":"Recorded gross transaction amount before fees.","examples":[119.11]},"amount_net":{"type":"number","description":"Recorded net transaction amount after fees.","examples":[115.55]},"amount_fees":{"type":"number","description":"Recorded transaction fees.","examples":[4.56]},"amount_captured":{"type":"number","description":"Recorded captured transaction amount.","examples":[14.05]},"amount_settled":{"type":"number","description":"Recorded settled transaction amount.","examples":[105.06]},"amount_remaining":{"type":"number","description":"Recorded transaction amount remaining to be processed.","examples":[2.23]},"amount_refunded":{"type":"number","description":"Recorded refunded amount. For a pending-refund attempt this reports the requested amount even when unsuccessful; inspect result_code and the outcome flags.","examples":[3.21]},"approved":{"type":"boolean","description":"Whether the transaction was approved at the gateway.","examples":[true]},"captured":{"type":"boolean","description":"Whether the transaction was captured at the gateway.","examples":[true]},"settled":{"type":"boolean","description":"Whether the transaction has been marked as settled.","examples":[true]},"void":{"type":"boolean","description":"Whether the transaction has been fully refunded with zero remaining.","examples":[false]},"declined":{"type":"boolean","description":"Whether the transaction was declined by the gateway.","examples":[false]},"error":{"type":"boolean","description":"Whether the transaction resulted in an error.","examples":[false]},"held":{"type":"boolean","description":"Whether the transaction was held by the gateway.","examples":[false]},"has_salvage":{"type":"boolean","description":"Whether the transaction has an associated salvage transaction.","examples":[false]},"is_refund":{"type":"boolean","description":"Whether the transaction is a refund transaction.","examples":[false]},"is_salvage":{"type":"boolean","description":"Whether the transaction is a salvage transaction.","examples":[false]},"live_mode":{"description":"Whether the transaction was created in live mode (true) or test mode (false).","type":"boolean","examples":[true]},"sale_initial":{"type":"boolean","description":"Whether the transaction is a part of an initial sale.","examples":[true]},"is_subscription":{"type":"boolean","description":"Whether the transaction is associated with a subscription.","examples":[false]},"is_subscription_renewal":{"type":"boolean","description":"Whether the transaction is associated with a subscription renewal.","examples":[false]},"is_payment_profile":{"type":"boolean","description":"Whether the transaction is associated with an available payment profile attempt.","examples":[false]},"result":{"type":"string","description":"Available transaction outcome text. Root code describes retrieval success; result_code describes the transaction outcome.","examples":["Approved","Declined","Held","Merchant Error"]},"status":{"type":"string","description":"Transaction display status, distinct from customer.status and the narrower status_filter selections.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"request_type":{"type":"string","description":"The transaction request type.","examples":["sale"]},"request_method":{"type":"string","description":"The transaction request method.","examples":["create"]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its recorded case. Omitted when unavailable or unrecognized; do not assume USD when absent.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"gateway_transaction_id":{"type":"string","description":"The originating gateway transaction ID.","examples":["60158776104"]},"gateway_result_phrase":{"type":"string","description":"The result phrase returned by the gateway.","examples":["submitted_for_settlement"]},"gateway_auth_code":{"type":"string","description":"The auth code from the gateway.","examples":["90632B"]},"gateway_avs_result_code":{"type":"string","description":"Address Verification Service (AVS) result code returned by the gateway.","examples":["Y"]},"gateway_cvv_result_code":{"type":"string","description":"Card verification (CVV) result code returned by the gateway.","examples":["M"]},"gateway_cavv_result_code":{"type":"string","description":"Cardholder Authentication Verification Value (CAVV) result code returned by the gateway.","examples":[""]},"merchant_account_id":{"type":"string","description":"The merchant account ID associated with the transaction gateway.","examples":["235828989"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["AdWords Campaign"]},"gateway_name":{"type":"string","description":"The gateway name.","examples":["First Bank NMI"]},"campaign_id":{"description":"20 character RevCent campaign ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"gateway_id":{"description":"20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs. Text, order and duplicate pairs are preserved.","maxItems":50},"customer":{"type":"object","description":"Available customer summary. Omitted when unavailable; customer.status is separate from the transaction's status.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code. Omitted when the country is unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text, including historical text.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when the customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs. Text, order and duplicate pairs are preserved.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when the customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"payment_profile":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent payment profile ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"type":"string","description":"The payment profile name.","examples":["My Payment Profile"]}},"description":"Associated payment profile summary, or null when unavailable."},"third_party_shop":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The user shop name.","examples":["My Store"]}},"description":"Associated user shop summary, or null when unavailable."},"gateway_details":{"type":["object","null"],"additionalProperties":false,"properties":{"user_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["First Bank NMI"]}},"description":"The account gateway. Null when unavailable."},"site_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent site gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"type":"string","description":"The site gateway name.","examples":["NMI"]}},"description":"The gateway provider. Null when unavailable."}},"description":"Available account-gateway and gateway-provider summaries, or null when neither is available."},"payment_method":{"type":["object","null"],"additionalProperties":false,"properties":{"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"Payment category: card, digital_wallet for Apple Pay/Google Pay, or bank_account for ACH.","examples":["card"]},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"Payment method: card, apple_pay, google_pay or ach.","examples":["card"]},"rail":{"type":"string","enum":["card","ach"],"description":"Processing rail: card for cards and Apple Pay/Google Pay, or ach for ACH bank accounts.","examples":["card"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"Optional 20 character RevCent ID of the associated saved payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"Optional 20 character RevCent ID of the customer associated with the saved method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was created.","examples":[1893499200]},"updated_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was last updated.","examples":[1893499200]},"enabled":{"type":"boolean","description":"Available saved-method enabled setting. It does not guarantee future payment acceptance or success."},"is_default":{"type":"boolean","description":"Whether this is the customer's default payment method for its category."},"card":{"type":"object","additionalProperties":false,"description":"Available display details for a card payment.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network.","examples":["visa"]},"expiration_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"expiration_year":{"type":"integer","minimum":1000,"maximum":9999,"description":"The four-digit card expiration year.","examples":[1000]},"funding_source":{"type":"string","description":"The card funding source, such as credit, debit, or prepaid, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the card number.","examples":["1111"]}}},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Available display details for an Apple Pay or Google Pay payment; sensitive wallet credentials are excluded.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized underlying card network reported by the digital wallet or payment gateway. The value may be omitted when the network is unavailable.","examples":["visa"]},"funding_source":{"type":"string","description":"The funding classification reported by the digital wallet or payment gateway. This value is descriptive and does not affect transaction accounting or gateway selection.","examples":["credit","debit","prepaid","store","unknown"]},"last_4":{"type":"string","description":"Available final four display digits; these may differ from the physical card's digits and do not identify a saved payment method.","examples":["4242"]}}},"ach":{"type":"object","additionalProperties":false,"description":"Available display details for an ACH bank-account payment; complete account and routing numbers are excluded.","properties":{"account_holder_type":{"type":"string","enum":["individual","business"],"description":"Whether the bank account is held by an individual or a business.","examples":["individual"]},"account_type":{"type":"string","enum":["checking","savings"],"description":"The bank account type.","examples":["checking"]},"bank_name":{"type":"string","description":"The name of the financial institution, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the bank account number.","examples":["1111"]},"routing_last_4":{"type":"string","description":"The final four digits of the bank routing number.","examples":["0210"]}}}},"description":"Available display-safe payment-method summary for card, Apple Pay, Google Pay or ACH. May contain classification alone when further details are unavailable, or be null when no usable summary is available. Saved-method identity and display details are independently optional."},"sales":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"description":"Up to 50 available associated sale IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"product_sales":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"description":"Up to 50 available associated product sale IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"shipping":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent shipment ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"description":"Up to 50 available associated shipment IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"tax":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"description":"Up to 50 available associated tax IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"trials":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"description":"Up to 50 available associated trial IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"subscriptions":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"description":"Up to 50 available associated subscription IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"subscription_renewals":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"description":"Up to 50 available associated subscription renewal IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"pending_refunds":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"description":"Up to 50 available associated pending refund IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"salvage_transactions":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"description":"Up to 50 available associated salvage transaction IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"chargebacks":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"description":"Up to 50 available associated chargeback IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"fraud_detections":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"description":"Up to 50 available associated fraud detection IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"fraud_detection_requests":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent fraud detection request ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to 50 available associated fraud detection request IDs. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"discounts":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"paypal_transactions":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"offline_payments":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"check_directs":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent Check Direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"paypal_disputes":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent PayPal dispute ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"sale_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the directly associated sale, when available. The association does not establish successful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"description":"Transaction summaries with available payment-method and relationship information. Monetary values use major units of iso_currency, rounded to two decimal places; signed values may be returned. When currency is omitted, do not assume a denomination. For pending-refund attempts, amount and amount_refunded report the requested refund amount and the other monetary summaries are zero regardless of outcome. These amounts alone do not establish a successful refund."}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/transactions/{transaction_id}":{"get":{"summary":"Get A Transaction","description":"Retrieve one transaction with its payment outcome, available payment-method summary, notes, gateway response and related-resource IDs. Archived transactions remain retrievable. No query parameters are accepted.","operationId":"GetTransaction","x-api-permission-description":"Allows the retrieving of transactions.","x-api-permission":"transaction:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTransaction.md","tags":["Transactions"],"parameters":[{"in":"path","name":"transaction_id","description":"20 character RevCent transaction ID, or an exact gateway transaction identifier of 1–256 UTF-16 code units. Control characters U+0000–U+001F and U+007F–U+009F are rejected. Values are case-sensitive and are not trimmed. A valid RevCent ID takes precedence; if it is unavailable, retrieval fails without retrying it as a gateway identifier. A gateway identifier must uniquely identify an available transaction; use the RevCent ID if the gateway identifier is ambiguous.","required":true,"schema":{"description":"20 character RevCent transaction ID, or an exact gateway transaction identifier of 1–256 UTF-16 code units. Control characters U+0000–U+001F and U+007F–U+009F are rejected. Values are case-sensitive and are not trimmed. A valid RevCent ID takes precedence; if it is unavailable, retrieval fails without retrying it as a gateway identifier. A gateway identifier must uniquely identify an available transaction; use the RevCent ID if the gateway identifier is ambiguous.","minLength":1,"maxLength":256,"type":"string","examples":["d9ZoKG0n2pIwBG60Q6aW"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Transaction details and available related information. Monetary values use major units of iso_currency, preserving available precision and signed values. Do not assume a denomination when currency is omitted. Payment amounts and outcomes are separate from successful retrieval.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"id":{"description":"The transaction's 20 character RevCent ID. Matches the requested RevCent ID, or identifies the unique transaction matched by the supplied gateway identifier.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"api_call_unix":{"type":"integer","description":"Unix timestamp in seconds when the API call was initiated.","examples":[1675367500]},"created_date_unix":{"type":"integer","description":"Transaction creation time in Unix seconds.","examples":[1675367500]},"updated_date_unix":{"type":"integer","description":"Transaction update time in Unix seconds.","examples":[1675367500]},"code":{"type":"integer","const":1,"description":"The API response code: 1 means the GET request succeeded, regardless of the transaction's payment outcome. See result_code for the payment outcome.","examples":[1]},"result_code":{"type":"integer","minimum":0,"maximum":5,"description":"Optional transaction payment outcome: 0 = RevCent Error, 1 = Success, 2 = Decline, 3 = Processor Error, 4 = Processor Hold, 5 = Fraud Detected. Distinct from root code: 1, which means retrieval succeeded. Omitted when unavailable or invalid.","examples":[0]},"amount":{"type":"number","description":"Recorded transaction amount.","examples":[129.99]},"amount_original_total":{"type":"number","description":"Recorded original transaction total.","examples":[139.99]},"amount_total":{"type":"number","description":"Recorded current transaction total.","examples":[124.55]},"amount_gross":{"type":"number","description":"Recorded gross transaction amount before fees.","examples":[119.11]},"amount_net":{"type":"number","description":"Recorded net transaction amount after fees.","examples":[115.55]},"amount_fees":{"type":"number","description":"Recorded transaction fees.","examples":[4.56]},"amount_captured":{"type":"number","description":"Recorded captured transaction amount.","examples":[14.05]},"amount_settled":{"type":"number","description":"Recorded settled transaction amount.","examples":[105.06]},"amount_remaining":{"type":"number","description":"Recorded transaction amount remaining to be processed.","examples":[2.23]},"amount_refunded":{"type":"number","description":"Recorded refunded amount; inspect the payment outcome before interpreting it as successful repayment.","examples":[3.21]},"approved":{"type":"boolean","description":"Whether the transaction was approved at the gateway.","examples":[true]},"captured":{"type":"boolean","description":"Whether the transaction was captured at the gateway.","examples":[true]},"settled":{"type":"boolean","description":"Whether the transaction has been marked as settled.","examples":[true]},"void":{"type":"boolean","description":"Whether the transaction has been fully refunded with zero remaining.","examples":[false]},"declined":{"type":"boolean","description":"Whether the transaction was declined by the gateway.","examples":[false]},"error":{"type":"boolean","description":"Whether the transaction resulted in an error.","examples":[false]},"held":{"type":"boolean","description":"Whether the transaction was held by the gateway.","examples":[false]},"has_salvage":{"type":"boolean","description":"Whether the transaction has an associated salvage transaction.","examples":[false]},"is_refund":{"type":"boolean","description":"Whether the transaction is a refund transaction.","examples":[false]},"is_salvage":{"type":"boolean","description":"Whether the transaction is a salvage transaction.","examples":[false]},"live_mode":{"description":"Whether the transaction was created in live mode (true) or test mode (false).","type":"boolean","examples":[true]},"sale_initial":{"type":"boolean","description":"Whether the transaction is a part of an initial sale.","examples":[true]},"is_subscription":{"type":"boolean","description":"Whether the transaction is associated with a subscription.","examples":[false]},"is_subscription_renewal":{"type":"boolean","description":"Whether the transaction is associated with a subscription renewal.","examples":[false]},"is_payment_profile":{"type":"boolean","description":"Whether the transaction is associated with an available payment profile attempt.","examples":[false]},"result":{"type":"string","description":"Available transaction outcome text. Root code describes retrieval success; result_code describes the transaction outcome.","examples":["Approved","Declined","Held","Merchant Error"]},"status":{"type":"string","description":"Transaction display status, separate from the customer status and the payment outcome in result_code.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"request_type":{"type":"string","description":"The transaction request type.","examples":["sale"]},"request_method":{"type":"string","description":"The transaction request method.","examples":["create"]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its recorded case. Omitted when unavailable or unrecognized; do not assume USD when absent.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"gateway_transaction_id":{"description":"Available exact identifier assigned by the gateway, distinct from the RevCent id. May be used for this operation when it uniquely identifies an available transaction and meets the path limits.","type":"string","examples":["60158776104"]},"gateway_result_phrase":{"type":"string","description":"The result phrase returned by the gateway.","examples":["submitted_for_settlement"]},"gateway_auth_code":{"type":"string","description":"The auth code from the gateway.","examples":["90632B"]},"gateway_avs_result_code":{"type":"string","description":"Address Verification Service (AVS) result code returned by the gateway.","examples":["Y"]},"gateway_cvv_result_code":{"type":"string","description":"Card verification (CVV) result code returned by the gateway.","examples":["M"]},"gateway_cavv_result_code":{"type":"string","description":"Cardholder Authentication Verification Value (CAVV) result code returned by the gateway.","examples":[""]},"merchant_account_id":{"type":"string","description":"The merchant account ID associated with the transaction gateway.","examples":["235828989"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["AdWords Campaign"]},"gateway_name":{"type":"string","description":"The gateway name.","examples":["First Bank NMI"]},"campaign_id":{"description":"20 character RevCent campaign ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"gateway_id":{"description":"20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["string","object","array","number","boolean","null"],"additionalProperties":true,"items":{},"description":"Opaque gateway response JSON value: a string, object, array, number, boolean or null. It is not necessarily stringified JSON. Unavailable or empty-string responses are represented as null.","examples":["{}"]},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs. Text, order and duplicate pairs are preserved.","maxItems":50},"customer":{"type":"object","description":"Available customer summary. Omitted when unavailable; customer.status is separate from the transaction's status.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code. Omitted when the country is unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text, including historical text.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Unix timestamp in seconds when the customer was created.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent customer ID.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs. Text, order and duplicate pairs are preserved.","maxItems":50},"updated_date_unix":{"description":"Unix timestamp in seconds when the customer was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"payment_profile":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent payment profile ID.","type":"string","title":"Payment Profile ID","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"name":{"type":"string","description":"The payment profile name.","examples":["My Payment Profile"]}},"description":"Associated payment profile summary, or null when unavailable."},"third_party_shop":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent user shop ID.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The user shop name.","examples":["My Store"]}},"description":"Associated user shop summary, or null when unavailable."},"gateway_details":{"type":["object","null"],"additionalProperties":false,"properties":{"user_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent user gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"name":{"type":"string","description":"The gateway name.","examples":["First Bank NMI"]}},"description":"The account gateway. Null when unavailable."},"site_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent site gateway ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"type":"string","description":"The site gateway name.","examples":["NMI"]}},"description":"The gateway provider. Null when unavailable."}},"description":"Available account-gateway and gateway-provider summaries, or null when neither is available."},"payment_method":{"type":["object","null"],"additionalProperties":false,"properties":{"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"Payment category: card, digital_wallet for Apple Pay/Google Pay, or bank_account for ACH.","examples":["card"]},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"Payment method: card, apple_pay, google_pay or ach.","examples":["card"]},"rail":{"type":"string","enum":["card","ach"],"description":"Processing rail: card for cards and Apple Pay/Google Pay, or ach for ACH bank accounts.","examples":["card"]},"id":{"type":"string","minLength":20,"maxLength":20,"description":"Optional 20 character RevCent ID of the associated saved payment method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"Optional 20 character RevCent ID of the customer associated with the saved method.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was created.","examples":[1893499200]},"updated_date_unix":{"type":"integer","format":"int64","description":"The Unix timestamp, in seconds, when the payment method was last updated.","examples":[1893499200]},"enabled":{"type":"boolean","description":"Available saved-method enabled setting. It does not guarantee future payment acceptance or success."},"is_default":{"type":"boolean","description":"Whether this is the customer's default payment method for its category."},"card":{"type":"object","additionalProperties":false,"description":"Available display details for a card payment.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network.","examples":["visa"]},"expiration_month":{"type":"integer","minimum":1,"maximum":12,"description":"The card expiration month as an integer from 1 through 12.","examples":[1]},"expiration_year":{"type":"integer","minimum":1000,"maximum":9999,"description":"The four-digit card expiration year.","examples":[1000]},"funding_source":{"type":"string","description":"The card funding source, such as credit, debit, or prepaid, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the card number.","examples":["1111"]}}},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Available display details for an Apple Pay or Google Pay payment; sensitive wallet credentials are excluded.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized underlying card network reported by the digital wallet or payment gateway. The value may be omitted when the network is unavailable.","examples":["visa"]},"funding_source":{"type":"string","description":"The funding classification reported by the digital wallet or payment gateway. This value is descriptive and does not affect transaction accounting or gateway selection.","examples":["credit","debit","prepaid","store","unknown"]},"last_4":{"type":"string","description":"Available final four display digits; these may differ from the physical card's digits and do not identify a saved payment method.","examples":["4242"]}}},"ach":{"type":"object","additionalProperties":false,"description":"Available display details for an ACH bank-account payment; complete account and routing numbers are excluded.","properties":{"account_holder_type":{"type":"string","enum":["individual","business"],"description":"Whether the bank account is held by an individual or a business.","examples":["individual"]},"account_type":{"type":"string","enum":["checking","savings"],"description":"The bank account type.","examples":["checking"]},"bank_name":{"type":"string","description":"The name of the financial institution, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"last_4":{"type":"string","description":"The final four digits of the bank account number.","examples":["1111"]},"routing_last_4":{"type":"string","description":"The final four digits of the bank routing number.","examples":["0210"]}}}},"description":"Available display-safe payment-method summary for card, Apple Pay, Google Pay or ACH. May contain classification alone when further details are unavailable, or be null when no usable summary is available. Saved-method identity and display details are independently optional."},"sales":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"description":"Up to 50 available associated sale IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"product_sales":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent product sale ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"description":"Up to 50 available associated product sale IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"shipping":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent shipment ID.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"description":"Up to 50 available associated shipment IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"tax":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent tax ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"description":"Up to 50 available associated tax IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"trials":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent trial ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"description":"Up to 50 available associated trial IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"subscriptions":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent subscription ID.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"description":"Up to 50 available associated subscription IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"subscription_renewals":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent subscription renewal ID.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"description":"Up to 50 available associated subscription renewal IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"pending_refunds":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent pending refund ID.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"description":"Up to 50 available associated pending refund IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"salvage_transactions":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent salvage transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"description":"Up to 50 available associated salvage transaction IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"chargebacks":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent chargeback ID.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"description":"Up to 50 available associated chargeback IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"fraud_detections":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent fraud detection ID.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"description":"Up to 50 available associated fraud detection IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"api_calls":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent API call ID.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"description":"Up to 50 available associated API call IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"fraud_detection_requests":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent fraud detection request ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to 50 available associated fraud detection request IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"ai_assistants":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent AI assistant ID.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"description":"Up to 50 available associated AI assistant IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"ai_threads":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"description":"A 20 character RevCent AI thread ID.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"description":"Up to 50 available associated AI thread IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"ai_voice_agents":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent AI voice agent ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to 50 available associated AI voice agent IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"ai_voice_calls":{"type":"array","maxItems":50,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent AI voice call ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to 50 available associated AI voice call IDs, preserving association order. This bounded subset is not complete history or proof of payment; unavailable associations may be omitted."},"transactions":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"discounts":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent discount ID.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"paypal_transactions":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent PayPal transaction ID.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"offline_payments":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent offline payment ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"check_directs":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"description":"A 20 character RevCent Check Direct ID.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"paypal_disputes":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent PayPal dispute ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"smtp_messages":{"type":"array","maxItems":0,"uniqueItems":true,"items":{"type":"string","minLength":20,"maxLength":20,"description":"A 20 character RevCent SMTP message ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Currently returns an empty compatibility array; this does not establish that no associated resources exist."},"notes":{"description":"Up to 50 available transaction notes from a bounded selection. Unavailable notes may be omitted; this does not guarantee complete history or the latest 50 across all associations.","items":{"additionalProperties":false,"properties":{"created_date_unix":{"description":"Unix timestamp in seconds when the note was created.","type":"integer","format":"unix-time","examples":[1893499200]},"updated_date_unix":{"description":"Unix timestamp in seconds when the note was last updated.","type":"integer","format":"unix-time","examples":[1893499200]},"id":{"type":"string","description":"20 character RevCent note ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"text":{"type":"string","description":"Available note text, including empty or long historical text, preserved without truncation. Omitted when unavailable or not text.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"username":{"type":"string","description":"The username of the user who created the note.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"first_name":{"type":"string","description":"The first name of the user who created the note.","examples":["Alex"]},"last_name":{"type":"string","description":"The last name of the user who created the note.","examples":["River"]},"employee_id":{"type":"string","description":"20 character RevCent user ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_note_related_type":{"type":"string","description":"The item type that the note was created for.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_note_related_id":{"type":"string","description":"20 character RevCent ID of the item identified by customer_note_related_type.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object"},"type":"array","maxItems":50}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/transactions/{transaction_id}/refund":{"post":{"summary":"Refund A Transaction","description":"Refund a credit card transaction directly using the transaction ID. If partially refunding, provide the amount property in the request body. If the amount property is not provided, the transaction will be refunded entirely.","operationId":"RefundTransaction","x-api-permission-description":"Allows the refunding of transactions.","x-api-permission":"transaction:create_refund","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-additional-info":"<br><br>Note: This is not the recommended method and should be avoided if you wish to run detailed metrics reports on a per item type basis. Use the VoidSale, RefundProductSale, RefundShipment, RefundTax, or RefundSubscriptionRenewal operations in order to target the specific item in question.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/RefundTransaction.md","tags":["Transactions"],"parameters":[{"in":"path","name":"transaction_id","description":"The transaction ID","required":true,"schema":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount to refund. If not provided the entire transaction amount will be refunded.","type":"number","format":"float","examples":[129.99]},"refunded_offsite":{"description":"You have the option to refund a credit card transaction within RevCent, without refunding the transaction at the gateway level. If set to true, RevCent will mark all entities as having a refund, but will not contact the gateway to return the money to the customer. This is useful for reporting within RevCent when a transaction was refunded outside of RevCent, i.e. Rapid Dispute Resolution, mailed a check, etc. Default is false.","type":"boolean","examples":[false]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"amount":{"description":"The amount refunded.","type":"number","format":"float","examples":[129.99]},"origin_campaign_id":{"type":"string","description":"A 20 character campaign ID of the transactions' associated campaign.","minLength":20,"maxLength":20,"examples":["X849YQm7BEf0ZQd7Ol1K"]},"origin_customer_id":{"type":"string","description":"A 20 character customer ID of the transactions' associated customer.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"origin_sale_id":{"type":"string","description":"A 20 character sale ID of the transactions' associated sale, if applicable.","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"origin_transaction_id":{"type":"string","description":"A 20 character transaction ID of the transaction being refunded.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"pending_refund":{"items":{"type":"string","description":"A 20 character pending refund ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"An array containing the ID's of any pending refunds created as a result of the refund."},"result":{"type":"string","examples":["Pending refund created for transaction."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/transactions/search":{"get":{"summary":"Search Transactions","description":"Find transactions using a search term and return up to ten relevance-ordered summaries. Use a result’s id with GetTransaction for fuller details. Results are not exhaustive or paginated.","operationId":"SearchTransactions","x-api-permission-description":"Allows the searching of transactions.","x-api-permission":"transaction:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a transaction when you do not know the transaction ID and wish to retrieve the details of a specific transaction. Once a transaction has been found, use an individual search results' id property and the GetTransaction operation to retrieve the transaction details.<br><br>Important: If using the SearchTransactions and GetTransaction method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the transaction using a secondary non-provided value, such as the customer email in the GetTransaction response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchTransactions.md","tags":["Transactions"],"parameters":[{"name":"search_term","description":"Required search term or phrase. Leading and trailing whitespace is removed; blank input is rejected. The last entry in a nonempty repeated-value list takes precedence, even if blank; otherwise the single value is used. No date, pagination or other query parameters are accepted.","in":"query","required":true,"schema":{"type":"string","examples":["424242","411111 1111","60158776104"]},"style":"form","x-additional-info":"Searches transaction IDs, gateway transaction IDs, first six and last four card digits, customer first and last names, email addresses, phone numbers, first address lines and transaction metadata values. Matching information may differ from the available customer or card details returned."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A limited set of transaction search summaries with available matching information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the search request was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 means search retrieval succeeded; it does not establish payment success.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to ten matches in descending result relevance, potentially fewer after unavailable matches are omitted. Results are not exhaustive or paginated, and omitted candidates are not replaced. Use the returned id with GetTransaction for fuller details when available.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Available customer first address line. Historical or empty text may be returned and may differ from the information that matched.","examples":["123 Example Street"]},"address_line_2":{"type":"string","description":"Available customer second address line. Historical or empty text may be returned and may differ from the information that matched.","examples":["Suite 100"]},"amount":{"type":"number","description":"Optional finite transaction amount in major currency units, preserving available precision and signed values. Search does not return currency; do not assume USD. Use id with GetTransaction for available currency and fuller financial information.","examples":[0]},"approved":{"type":"boolean","description":"Whether or not the transaction was approved.","examples":[true]},"card_id":{"description":"20 character RevCent ID of the historical saved card associated with this transaction and customer. This is not automatically a saved payment-method ID.","type":"string","minLength":20,"maxLength":20,"examples":["ALAGkvj0O7u5rdmVggQ7"]},"city":{"type":"string","description":"Available customer city. Historical or empty text may be returned and may differ from the information that matched.","examples":["Boston"]},"created_date_unix":{"description":"Transaction creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated customer, when available. Other customer details may be available independently.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"Available valid customer email address; it may differ from the email that matched. Omitted when unavailable or invalid.","examples":["georgew@whitehouse.gov"]},"first_6":{"type":"string","description":"Available first six digits from the associated historical saved card. These are separate from wallet display digits and may differ from the information that matched.","minLength":6,"maxLength":6,"examples":["424242"]},"first_name":{"type":"string","description":"Available customer first name. Historical or empty text may be returned and may differ from the information that matched.","examples":["George"]},"gateway_transaction_id":{"type":"string","description":"The originating gateway transaction ID.","examples":["60158776104"]},"highlights":{"type":"array","description":"Optional matching categories and text fragments. They may be incomplete or differ from the current customer/card information returned.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_6","first_name","gateway_transaction_id","id","last_4","last_name","metadata","phone"],"description":"Public category of the matching information, not necessarily an exact pointer to the available response value.","examples":["last_name"]},"values":{"type":"array","description":"Available matching fragments for this category.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"Optional finite relevance information for this highlighted passage, separate from the whole result score.","examples":[0]},"full_text":{"type":"string","description":"Available metadata match text with context, returned only for metadata highlights. It is not necessarily the complete metadata value or a value present in the returned metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"The transaction's 20 character RevCent ID, for GetTransaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"item_type":{"type":"string","const":"transaction","description":"The item type returned in the search result.","examples":["transaction"]},"last_4":{"type":"string","description":"Available final four digits from the associated historical saved card, distinct from payment_method.digital_wallet.last_4. They may differ from the information that matched.","minLength":4,"maxLength":4,"examples":["4242"]},"last_name":{"type":"string","description":"Available customer last name. Historical or empty text may be returned and may differ from the information that matched.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates. May be absent or empty and is not guaranteed complete.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name supplied by the consumer, up to 100 characters.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Associated metadata value supplied by the consumer, up to 255 characters.","examples":["mystore.com"]}}}},"payment_method":{"type":["object","null"],"additionalProperties":false,"description":"Compact payment classification: card/card/card, digital_wallet/apple_pay/card, digital_wallet/google_pay/card or bank_account/ach/ach (category/method/rail). Null when the supplied classification is unavailable or invalid. Historical transactions with no payment classification return card/card/card for compatibility. This summary does not identify a saved payment method; use GetTransaction for fuller information.","properties":{"category":{"type":"string","enum":["card","digital_wallet","bank_account"],"description":"The broad payment-method category used for the transaction.","examples":["card"]},"method":{"type":"string","enum":["card","apple_pay","google_pay","ach"],"description":"The normalized payment method used for the transaction.","examples":["card"]},"rail":{"type":"string","description":"Card processing for cards and Apple Pay/Google Pay; ACH processing for bank-account ACH payments.","enum":["card","ach"],"examples":["card"]},"digital_wallet":{"type":"object","additionalProperties":false,"description":"Optional wallet display information, separate from historical saved card fields and saved-method identity. No reusable payment credentials are returned.","properties":{"card_network":{"type":"string","enum":["visa","master-card","american-express","diners-club","discover","jcb","unionpay","maestro","elo","mir","hiper","hipercard"],"description":"The normalized card network reported for the wallet-funded transaction.","examples":["visa"]},"last_4":{"type":"string","description":"The last four display digits reported by the wallet or gateway, which may identify a tokenized account rather than the physical card.","minLength":4,"maxLength":4,"examples":["1111"]},"funding_source":{"type":"string","minLength":1,"description":"The descriptive funding classification reported by the wallet or gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"phone":{"type":"string","description":"Available customer phone text. Historical or empty text may be returned and may differ from the information that matched.","examples":["+12025550123"]},"request_method":{"type":"string","description":"The request method that created the transaction.","examples":["create"]},"request_type":{"type":"string","description":"The request type that created the transaction.","examples":["sale"]},"score":{"type":"number","description":"Relevance information for the whole result, separate from highlight scores. Higher values indicate greater relevance without a guaranteed 0–1 range. Returns 1 when absent; explicit null or invalid values are omitted.","examples":[7.68]},"state":{"type":"string","description":"Available customer state or region. Historical or empty text may be returned and may differ from the information that matched.","examples":["MA"]},"url":{"type":"string","format":"uri","description":"RevCent transaction-details URL identifying this result's id.","examples":["https://revcent.com/user/transaction-details/ALRjyqRE27fjMonyKLny"]},"zip":{"type":"string","description":"Available customer ZIP or postal code. Historical or empty text may be returned and may differ from the information that matched.","examples":["02108"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials":{"get":{"summary":"Get Trials","description":"Retrieve a page of trials with available product, customer, financial and lifecycle information. Results are ordered from newest to oldest. Use a returned trial ID with GetTrial for details.","operationId":"GetTrials","x-api-permission-description":"Allows the retrieving of trials.","x-api-permission":"trial:retrieve","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"date_start, date_end, limit and page are required. The creation-date interval cannot exceed 90 days unless customer_id is supplied; dates still apply. Only pages through 20 are accessible, even when total_pages is larger. Narrow the creation-date range or supported filters when needed.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTrials.md","tags":["Trials"],"parameters":[{"description":"Inclusive start of the trial creation-date interval, as nonnegative Unix seconds. date_start must not exceed date_end; equal values select an empty interval. The maximum span is 90 days unless customer_id is supplied. Dates remain required and applied with that filter. Repeated values are rejected.","in":"query","name":"date_start","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1627876799],"minimum":0},"style":"form"},{"description":"Exclusive end of the trial creation-date interval, as nonnegative Unix seconds. date_start must not exceed date_end; equal values select an empty interval. The maximum span is 90 days unless customer_id is supplied. Dates remain required and applied with that filter. Repeated values are rejected.","in":"query","name":"date_end","required":true,"schema":{"type":"integer","format":"unix-time","examples":[1628049599],"minimum":0},"style":"form"},{"description":"Required maximum number of trials per page, from 1 to 25. There is no default. Repeated values are rejected.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Zero selects page one; the response reports current_page as 1. Repeated values are rejected.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"},{"name":"campaign_filter","in":"query","description":"Filter by up to 50 distinct campaign IDs, supplied as repeated query values. Duplicate values are combined. Match any selected value within this filter and all other supplied filters. Explicit campaign selection replaces the default campaign exclusions.","required":false,"schema":{"type":"array","items":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"maxItems":50},"style":"form","explode":true},{"name":"product_filter","in":"query","description":"Filter by up to 50 distinct product IDs, supplied as repeated query values. Duplicate values are combined. Match any selected value within this filter and all other supplied filters.","required":false,"schema":{"type":"array","items":{"title":"Product ID","type":"string","description":"A 20 character product ID.","minLength":20,"maxLength":20,"examples":["6r8O5MLbw2t6n4v1lGqK","r1Ebz4d6qaH05LPvWM1M"]},"maxItems":50},"style":"form","explode":true},{"name":"payment_type_filter","in":"query","description":"Filter by up to 50 distinct payment types, supplied as repeated query values. Duplicate values are combined. Match any selected value within this filter and all other supplied filters.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","offline","check_direct"],"examples":["credit_card","paypal","offline","check_direct"]},"maxItems":50},"style":"form","explode":true},{"name":"status_filter","in":"query","description":"Filter by up to 50 distinct trial statuses, supplied as repeated query values. Duplicate values are combined. Match any selected value within this filter and all other supplied filters. The active filter includes trials with Active status whose scheduled end is no more than six hours before the request. It does not simply test the active response flag; displayed status may differ.","required":false,"schema":{"type":"array","items":{"type":"string","enum":["active","expired","expiredpaymentpartialdecline","expiredpaymentfulldecline","expiredpaymenterror","inactive","cancelled","fraud","chargeback"],"examples":["active","expiredpaymenterror"]},"maxItems":50},"style":"form","explode":true},{"description":"Filter by up to 50 metadata name/value pairs. Supply repeated JSON objects or indexed/unindexed bracket parameters for name and value. Use METADATA_NAME_EXISTS as the value to match name presence. Alternative values for the same name use OR; different names use AND.","explode":true,"in":"query","name":"metadata_filter","required":false,"schema":{"items":{"additionalProperties":false,"required":["name","value"],"properties":{"name":{"type":"string","description":"The metadata name which must be present in an items metadata along with a matching value.","examples":["filter_metadata_name"]},"value":{"type":"string","description":"The metadata value associated with the metadata name. To filter ignoring the metadata value and just filter based on the presence of the metadata name, you can set the value to 'METADATA_NAME_EXISTS' and it will filter for items that have the metadata name regardless of the value.","examples":["Filter metadata value"]}},"type":"object"},"type":"array","maxItems":50},"style":"deepObject"},{"description":"20 character RevCent ID of the customer whose trials to retrieve. The 90-day maximum interval does not apply when supplied; date_start and date_end remain required and restrict results. Repeated values are rejected.","in":"query","name":"customer_id","required":false,"schema":{"type":"string","examples":["4r158EzJmmcVM69dNLkg"],"minLength":20,"maxLength":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of available trial summaries and matching pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the trial list was retrieved successfully; it does not establish a payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"current_count":{"description":"Number of trial summaries returned on this page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Requested page, with page zero normalized to one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Trial creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The trial's 20 character RevCent ID, for GetTrial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"amount":{"description":"Alias of amount_total, when available.","type":"number","format":"float","examples":[129.99]},"amount_original_total":{"description":"Recorded original trial total.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Recorded current trial total.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Recorded gross trial payments.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Recorded net trial payments after fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Recorded payment-processing fees for the trial.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Recorded captured trial amount.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Recorded settled trial amount.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Recorded trial amount remaining to be processed.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Recorded trial refund amount.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"Recorded trial amount awaiting recovery.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name; may be omitted while campaign_id is present.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable. Its status describes the customer, not the trial outcome.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code. Omitted when the country is unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text, including historical text.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Customer creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text, order and duplicates. This may be a subset of the associated metadata.","maxItems":50},"updated_date_unix":{"description":"Customer update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"active":{"description":"Whether the trial is marked active. This flag is separate from its status and rounded days remaining.","type":"boolean","examples":[true]},"days_total":{"description":"Start-to-end duration rounded to the nearest whole day; omitted when either date is unavailable or the end precedes the start.","type":"integer","minimum":0,"examples":[3]},"days_remaining":{"description":"Time until the trial end rounded to the nearest whole day, with a minimum of zero. Completed or expired trials return zero when an end date is available; omitted without a usable end date.","type":"integer","minimum":0,"examples":[1]},"expired_date_unix":{"description":"Recorded trial expiration time in Unix seconds, or null when unavailable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"start_date_unix":{"description":"Available trial start time in Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"end_date_unix":{"description":"Available scheduled trial end time in Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its case. Omitted when unavailable or unrecognized; do not assume USD when omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the payment type.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"Payment type name, when available.","examples":["Example"]}},"description":"Payment type ID and available name, or null when unavailable."},"third_party_shop":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The user shop name.","examples":["My Store"]}},"description":"Originating user shop ID and available name, or null when unavailable."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text, order and duplicates. This may be a subset of the associated metadata.","maxItems":50},"updated_date_unix":{"description":"Trial update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the associated sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten available associated sale IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetSale to retrieve details.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the associated product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten available associated product sale IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetProductSale to retrieve details.","maxItems":10,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent ID of the associated shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to ten available associated shipment IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetShipment to retrieve details.","maxItems":10,"uniqueItems":true},"tax":{"items":{"description":"20 character RevCent ID of the associated tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten available associated tax IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetTax to retrieve details.","maxItems":10,"uniqueItems":true},"discounts":{"items":{"description":"20 character RevCent ID of the associated discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to ten available associated discount IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetDiscount to retrieve details.","maxItems":10,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent ID of the associated subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to ten available associated subscription IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetSubscription to retrieve details.","maxItems":10,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the associated transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten available associated transaction IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the associated PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to ten available associated PayPal transaction IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetPayPalTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the associated offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to ten available associated offline payment IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetOfflinePayment to retrieve details.","maxItems":10,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the associated check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to ten available associated check IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetCheckDirect to retrieve details.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the associated salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten available associated salvage transaction IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetSalvageTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent ID of the associated pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten available associated pending refund IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetPendingRefund to retrieve details.","maxItems":10,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the associated chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to ten available associated chargeback IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetChargeback to retrieve details.","maxItems":10,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the associated fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to ten available associated fraud detection IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetFraudDetection to retrieve details.","maxItems":10,"uniqueItems":true},"status":{"type":"string","description":"The trial status. This is separate from customer.status and may differ from the values accepted by status_filter.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount_discounted":{"type":"number","description":"Recorded discount amount for the trial's product purchase.","examples":[0]},"request_end":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"Available ending transaction's 20 character RevCent ID, or null. This association alone does not establish a successful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_details":{"type":["object","null"],"additionalProperties":false,"properties":{"user_gateway":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the user gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}},"description":"The account gateway."},"site_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the site gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The site gateway name.","examples":["Example"]}},"description":"The gateway provider."}},"description":"Available ending-transaction gateway descriptors, or null when unavailable. A provider descriptor may independently be null."},"product":{"type":"object","description":"Compact available product and purchase information for the trial.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"price":{"description":"Purchase unit price in major units of the trial currency, preserving its available numeric precision.","type":"number","format":"float"},"quantity":{"type":"number","description":"Available purchased quantity, preserving historical signed or fractional values and precision.","examples":[0]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product."},"is_trial":{"type":"boolean","description":"Whether the product is a trial product."},"list_price":{"type":"number","description":"List unit price for the purchase in major units of the trial currency, preserving its available numeric precision.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the product; the same value as product.id.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"description":"Available trial information. Trial monetary summaries use major units of iso_currency, rounded to two decimal places; signed historical amounts are preserved. Product price, list_price and quantity retain their available precision. An omitted currency does not establish a denomination."},"type":"array","maxItems":25,"description":"Up to 25 available trial summaries, newest first with consistent ordering for equal creation times. An empty page retains the matching totals. Retrieval fails if a selected trial cannot be returned with its required information."},"total_count":{"description":"Number of available trials matching the creation dates, all applicable filters and access rules, with usable required product information.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total_count divided by limit, rounded up; zero for no matches. May exceed 20 even though only pages through 20 are accessible.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/{trial_id}":{"get":{"summary":"Get A Trial","description":"Retrieve a trial’s available product, customer, financial and lifecycle details using its trial ID.","operationId":"GetTrial","x-api-permission-description":"Allows the retrieving of trials.","x-api-permission":"trial:retrieve","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetTrial.md","tags":["Trials"],"parameters":[{"in":"path","name":"trial_id","description":"20 character RevCent ID of the trial to retrieve. Only the trial ID is accepted; this operation has no query parameters.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the trial.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested trial. Monetary values use major units of iso_currency and preserve signed values. Trial amounts are rounded to two decimals except amount_discounted, which retains its available precision. An omitted currency does not establish a denomination.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means trial retrieval succeeded; it does not establish a successful payment.","type":"integer","const":1,"examples":[1]},"created_date_unix":{"description":"Trial creation time in whole Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The requested trial's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"amount":{"description":"Alias of amount_total, when available.","type":"number","format":"float","examples":[129.99]},"amount_original_total":{"description":"Recorded original trial total.","type":"number","format":"float","examples":[139.99]},"amount_total":{"description":"Recorded current trial total.","type":"number","format":"float","examples":[124.55]},"amount_gross":{"description":"Recorded gross trial payments.","type":"number","format":"float","examples":[119.11]},"amount_net":{"description":"Recorded net trial payments after fees.","type":"number","format":"float","examples":[115.55]},"amount_fees":{"description":"Recorded trial payment-processing fees.","type":"number","format":"float","examples":[4.56]},"amount_captured":{"description":"Recorded captured trial amount.","type":"number","format":"float","examples":[14.05]},"amount_settled":{"description":"Recorded settled trial amount.","type":"number","format":"float","examples":[105.06]},"amount_remaining":{"description":"Recorded trial amount remaining to be processed.","type":"number","format":"float","examples":[2.23]},"amount_refunded":{"description":"Recorded trial refund amount.","type":"number","format":"float","examples":[3.21]},"amount_to_salvage":{"description":"Recorded trial amount awaiting recovery.","type":"number","format":"float","examples":[2.23]},"campaign_id":{"description":"Available campaign's 20 character RevCent ID.","type":"string","title":"Campaign ID","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"Available campaign name; may be omitted while campaign_id is present.","examples":["AdWords Campaign"]},"customer":{"type":"object","description":"Available customer summary; omitted when unavailable. Customer status is independent of the trial outcome.","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"The customer first address line.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"The customer second address line.","examples":["West Wing"]},"blocked":{"type":"boolean","description":"Whether the customer is blocked.","examples":[false]},"city":{"type":"string","description":"The customer city.","examples":["Washington"]},"company":{"type":"string","description":"The customer company.","examples":["Acme Inc."]},"country":{"type":"string","description":"Recognized uppercase ISO 3166-1 alpha-3 country code. Omitted when the country is unavailable or unrecognized.","minLength":3,"maxLength":3,"examples":["USA"]},"email":{"type":"string","description":"Available customer email text, including historical text.","examples":["georgew@whitehouse.gov"]},"first_name":{"type":"string","description":"The customer first name.","examples":["George"]},"internal_id":{"type":"string","description":"The consumer's own customer reference, when available.","examples":["pres_01"]},"last_name":{"type":"string","description":"The customer last name.","examples":["Washington"]},"phone":{"type":"string","description":"The customer phone.","examples":["1234567890"]},"state":{"type":"string","description":"The customer state.","examples":["DC"]},"zip":{"type":"string","description":"The customer ZIP and or postal code.","examples":["20500"]},"created_date_unix":{"description":"Customer creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"20 character RevCent ID of the customer.","title":"Customer ID","type":"string","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"enabled":{"type":"boolean","description":"Whether the customer is enabled."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text, order and duplicates. This may be a subset of the associated metadata.","maxItems":50},"updated_date_unix":{"description":"Customer update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"status":{"description":"The customer status.","enum":["Chargeback","Fraud Detected","Blocked","Disabled","Enabled"],"type":"string","examples":["Chargeback"]}}},"active":{"description":"Available trial active flag, separate from its display status.","type":"boolean","examples":[true]},"days_total":{"description":"Start-to-end duration rounded to the nearest whole day. Omitted when either date is unavailable or the end precedes the start.","type":"integer","minimum":0,"examples":[3]},"days_remaining":{"description":"Time until the trial end rounded to the nearest whole day, with a minimum of zero. Completed or expired trials return zero when an end date is available; omitted without a usable end date.","type":"integer","minimum":0,"examples":[1]},"expired_date_unix":{"description":"Recorded expiration time in whole Unix seconds, or null when unavailable.","type":["integer","null"],"format":"unix-time","examples":[1706030353]},"start_date_unix":{"description":"Available trial start time in whole Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"end_date_unix":{"description":"Available scheduled trial end time in whole Unix seconds; omitted when unavailable.","type":"integer","format":"unix-time","examples":[1706030353]},"iso_currency":{"description":"Recognized three-letter ISO 4217 currency code, preserving its case. Omitted when unavailable or unrecognized; do not assume USD when omitted.","type":"string","examples":["USD"],"minLength":3,"maxLength":3},"live_mode":{"description":"Whether the item was created using a Live or Test API key.","type":"boolean","examples":[true]},"payment_type":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the payment type.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"Payment type name, when available.","examples":["Example"]}},"description":"Payment type ID and available name, or null when unavailable."},"third_party_shop":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the user shop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","description":"The user shop name.","examples":["My Store"]}},"description":"Originating user shop ID and available name, or null when unavailable."},"metadata":{"items":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"Metadata name supplied by the consumer, up to 100 characters.","minLength":1,"maxLength":100,"examples":["website"]},"value":{"type":"string","description":"Associated metadata value supplied by the consumer, up to 255 characters.","minLength":1,"maxLength":255,"examples":["mystore.com"]}},"type":"object"},"type":"array","description":"Up to 50 available metadata name/value pairs, preserving their text, order and duplicates. This may be a subset of the associated metadata.","maxItems":50},"updated_date_unix":{"description":"Trial update time in whole Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"sales":{"items":{"description":"20 character RevCent ID of the associated sale.","type":"string","minLength":20,"maxLength":20,"examples":["k6vnbJom00Ug89mpRj78"]},"type":"array","description":"Up to ten available associated sale IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetSale to retrieve details.","maxItems":10,"uniqueItems":true},"product_sales":{"items":{"description":"20 character RevCent ID of the associated product sale.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hbPzpBn8aY"]},"type":"array","description":"Up to ten available associated product sale IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetProductSale to retrieve details.","maxItems":10,"uniqueItems":true},"shipping":{"items":{"description":"20 character RevCent ID of the associated shipment.","type":"string","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]},"type":"array","description":"Up to ten available associated shipment IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetShipment to retrieve details.","maxItems":10,"uniqueItems":true},"tax":{"items":{"description":"20 character RevCent ID of the associated tax.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten available associated tax IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetTax to retrieve details.","maxItems":10,"uniqueItems":true},"discounts":{"items":{"description":"20 character RevCent ID of the associated discount.","type":"string","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]},"type":"array","description":"Up to ten available associated discount IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetDiscount to retrieve details.","maxItems":10,"uniqueItems":true},"trials":{"items":{"description":"20 character RevCent ID of the trial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"type":"array","description":"Always-empty compatibility array; it does not establish that no associations exist.","maxItems":0,"uniqueItems":true},"subscriptions":{"items":{"description":"20 character RevCent ID of the associated subscription.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]},"type":"array","description":"Up to ten available associated subscription IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetSubscription to retrieve details.","maxItems":10,"uniqueItems":true},"subscription_renewals":{"items":{"description":"20 character RevCent ID of the subscription renewal.","type":"string","minLength":20,"maxLength":20,"examples":["YaVqjA1JowiGpyEN0o55"]},"type":"array","description":"Always-empty compatibility array; it does not establish that no associations exist.","maxItems":0,"uniqueItems":true},"transactions":{"items":{"description":"20 character RevCent ID of the associated transaction.","type":"string","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]},"type":"array","description":"Up to ten available associated transaction IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"ai_threads":{"items":{"description":"20 character RevCent ID of the associated AI thread.","type":"string","title":"AI Thread ID","minLength":20,"maxLength":20,"examples":["V1q65avW45Spn1kbY9yV"]},"type":"array","description":"Up to ten available associated AI thread IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetAIThread to retrieve details.","maxItems":10,"uniqueItems":true},"ai_assistants":{"items":{"description":"20 character RevCent ID of the associated AI assistant.","type":"string","title":"AI Assistant ID","minLength":20,"maxLength":20,"examples":["WgNQmKrM1LT9Jj4pAvk6"]},"type":"array","description":"Up to ten available associated AI assistant IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetAIAssistant to retrieve details.","maxItems":10,"uniqueItems":true},"paypal_transactions":{"items":{"description":"20 character RevCent ID of the associated PayPal transaction.","type":"string","minLength":20,"maxLength":20,"examples":["k6omOdKbrRTZnpP6d7Ng"]},"type":"array","description":"Up to ten available associated PayPal transaction IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetPayPalTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"offline_payments":{"items":{"description":"20 character RevCent ID of the associated offline payment.","type":"string","minLength":20,"maxLength":20,"examples":["zGldyKJGORfkP1O1vJ4B"]},"type":"array","description":"Up to ten available associated offline payment IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetOfflinePayment to retrieve details.","maxItems":10,"uniqueItems":true},"check_directs":{"items":{"description":"20 character RevCent ID of the associated check.","type":"string","minLength":20,"maxLength":20,"examples":["GO51EXbbAPS6pP1Ov9kK"]},"type":"array","description":"Up to ten available associated check IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetCheckDirect to retrieve details.","maxItems":10,"uniqueItems":true},"salvage_transactions":{"items":{"description":"20 character RevCent ID of the associated salvage transaction.","type":"string","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"type":"array","description":"Up to ten available associated salvage transaction IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetSalvageTransaction to retrieve details.","maxItems":10,"uniqueItems":true},"pending_refunds":{"items":{"description":"20 character RevCent ID of the associated pending refund.","type":"string","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]},"type":"array","description":"Up to ten available associated pending refund IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetPendingRefund to retrieve details.","maxItems":10,"uniqueItems":true},"chargebacks":{"items":{"description":"20 character RevCent ID of the associated chargeback.","type":"string","minLength":20,"maxLength":20,"examples":["j0a9dNwVKqu8Qz5Vl6ZZ"]},"type":"array","description":"Up to ten available associated chargeback IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetChargeback to retrieve details.","maxItems":10,"uniqueItems":true},"fraud_detections":{"items":{"description":"20 character RevCent ID of the associated fraud detection.","type":"string","minLength":20,"maxLength":20,"examples":["VPwOydX2ArHJy8gX2o98"]},"type":"array","description":"Up to ten available associated fraud detection IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetFraudDetection to retrieve details.","maxItems":10,"uniqueItems":true},"api_calls":{"items":{"description":"20 character RevCent ID of the associated API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"type":"array","description":"Up to ten available associated API call IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetAPICall to retrieve details.","maxItems":10,"uniqueItems":true},"status":{"type":"string","description":"Trial display status, distinct from customer.status.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"amount_discounted":{"type":"number","description":"Recorded discount amount for the trial purchase, preserving its available precision.","examples":[0]},"tax_amount":{"type":"number","description":"Gross tax amount in major units of the trial currency, rounded to two decimals. Applies when the trial is inactive and has a recorded expiration time; otherwise zero. Also zero when no applicable amounts are available. Includes available associated amounts beyond the displayed tax IDs. Omitted if the total is unavailable.","examples":[0]},"shipping_amount":{"type":"number","description":"Gross shipping amount in major units of the trial currency, rounded to two decimals. Applies when the trial is inactive and has a recorded expiration time; otherwise zero. Also zero when no applicable amounts are available. Includes available associated amounts beyond the displayed shipping IDs. Omitted if the total is unavailable.","examples":[0]},"request_end":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"Available ending transaction's 20 character RevCent ID, or null. This association alone does not establish a successful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_details":{"type":["object","null"],"additionalProperties":false,"properties":{"user_gateway":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the user gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The gateway name.","examples":["Example"]}},"description":"Available account gateway descriptor."},"site_gateway":{"type":["object","null"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the site gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The site gateway name.","examples":["Example"]}},"description":"Available gateway provider descriptor, or null independently of the account gateway."}},"description":"Available ending-transaction gateway descriptors, or null when unavailable. The account gateway is an object when this summary is present; its provider may independently be unavailable."},"product":{"type":"object","description":"Available trial product and purchase details.","additionalProperties":false,"properties":{"id":{"type":"string","description":"20 character RevCent ID of the product.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","description":"The product name.","examples":["Example"]},"internal_id":{"type":"string","description":"The consumer's own product reference, when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"sku":{"type":"string","description":"The product SKU.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"price":{"description":"Purchase unit price in major currency units, rounded to two decimals.","type":"number","format":"float"},"quantity":{"type":"number","description":"Purchased quantity, retaining available precision and historical signed or fractional values.","examples":[0]},"is_subscription":{"type":"boolean","description":"Whether the product is a subscription product."},"is_trial":{"type":"boolean","description":"Whether the product is a trial product."},"description":{"type":"string","description":"The product description.","examples":["Example description"]},"list_price":{"type":"number","description":"Available list unit price in major currency units, rounded to two decimals.","examples":[0]},"uuid":{"type":"string","description":"Reference identifying this product purchase, when available. Historical or empty text may be returned.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"url":{"type":"string","description":"Product URL text, when available. Historical or empty text may be returned.","examples":["https://example.com"]},"total_amount":{"type":"number","description":"Original purchase unit price multiplied by quantity, then rounded to two decimals. May differ from multiplying displayed price by quantity because displayed price is already rounded. Omitted when usable price or quantity is unavailable.","examples":[0]},"is_shippable":{"type":"boolean","description":"Whether the product is shippable."},"product_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the product; the same value as product.id.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"ai_voice_agents":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated AI voice agent.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to ten available associated AI voice agent IDs in association order. This may be a subset; an empty array does not establish that no associations exist. Use GetAIVoiceAgent to retrieve details.","maxItems":10,"uniqueItems":true},"ai_voice_calls":{"type":"array","items":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated AI voice call.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":"Up to ten available associated AI voice call IDs in descending creation order within the selected subset. This may be a subset; an empty array does not establish that no associations exist. Use GetAIVoiceCall to retrieve details.","maxItems":10,"uniqueItems":true}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/{trial_id}/expire":{"post":{"summary":"Expire A Trial","description":"Expire a trial and process its payment immediately, before its scheduled expiration if needed.","operationId":"ExpireTrial","x-api-permission-description":"Allows the expiring of trials.","x-api-permission":"trial:expire","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ExpireTrial.md","tags":["Trials"],"parameters":[{"in":"path","name":"trial_id","description":"The trial ID.","required":true,"schema":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"gateway_id":{"type":"string","description":"Optional public account-owned user gateway ID. An ordinary-card override is exclusive and bypasses inherited profiles. A selected saved wallet always uses its originating gateway instead. No public payment_profile override.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The successful trial expiration, including payment totals and related records. A trial with no amount due can complete without a transaction or gateway details.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"card_id":{"type":"string","description":"The 20 character RevCent ID of the selected card, or an empty string when no card ID is available. The field may be omitted when the payment outcome does not include a card reference.","anyOf":[{"minLength":20,"maxLength":20},{"const":""}],"examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"amount":{"type":"number","description":"The amount captured for this payment. Expressed in the payment currency.","examples":[0]},"amount_captured":{"type":"number","description":"The amount captured. Expressed in the payment currency.","examples":[0]},"amount_discounted":{"type":"number","description":"The discount applied to this payment. Expressed in the payment currency.","examples":[0]},"amount_fees":{"type":"number","description":"The fees associated with this payment. Expressed in the payment currency.","examples":[0]},"amount_gross":{"type":"number","description":"The gross payment amount. Expressed in the payment currency.","examples":[0]},"amount_net":{"type":"number","description":"The net payment amount. Expressed in the payment currency.","examples":[0]},"amount_original_total":{"type":"number","description":"The original total before discounts and payment adjustments. Expressed in the payment currency.","examples":[0]},"amount_remaining":{"type":"number","description":"The unpaid amount assigned to recovery. Expressed in the payment currency.","examples":[0]},"amount_to_salvage":{"type":"number","description":"The amount assigned to the salvage transaction. Expressed in the payment currency.","examples":[0]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"subscription_profile_id":{"description":"The 20 character RevCent ID of the associated subscription profile, when a subscription exists.","type":"string","minLength":20,"maxLength":20,"examples":["r1E1mnl41afb8La0mjMw","4R5RMnpA8ZSMMjEV2a21"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway":{"type":"string","description":"The gateway name, when a payment attempt was made.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the gateway, or null when no gateway ID is available. Included when a payment attempt was made.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"transaction_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the transaction, or null when no transaction was created.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"salvage_transaction":{"description":"The salvage transaction for the unpaid remainder, or null when none was created.","type":["object","null"],"additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Whether a salvage transaction was created for an unpaid remainder."},"discount_created":{"type":"array","description":"IDs of discount records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character discount ID.","minLength":20,"maxLength":20,"examples":["5r1wN8EbAgsPvLlbMava"]}},"shipping_created":{"type":"array","description":"IDs of shipping records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character shipping ID.","minLength":20,"maxLength":20,"examples":["gYamRbaGZphKn8zJVow1"]}},"tax_created":{"type":"array","description":"IDs of tax records created for this payment. An empty array means none were created.","items":{"type":"string","description":"A 20 character tax ID.","minLength":20,"maxLength":20,"examples":["MW5LoAVymnHww96XllEr"]}},"next_renewal_date":{"description":"The next renewal date in M/D/YYYY format, when a next subscription renewal is scheduled.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"next_renewal_date_unix":{"description":"The next subscription renewal date as a Unix timestamp in seconds, when scheduled.","type":"integer","examples":[1893499200]},"subscription_id":{"description":"The 20 character RevCent ID of the associated subscription, when one exists.","type":"string","minLength":20,"maxLength":20,"examples":["WmPnWqPKbpFRmy6Ma2BG"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Country validation failure.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E1146"],"examples":["E1146"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"path":{"type":"string","description":"Identifies the country value that could not be accepted.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Validation failure identifying the affected customer.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0067","E0125","E0180","E0601"],"examples":["E0067"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"customer_id":{"type":"string","description":"The 20 character RevCent ID of the customer associated with this validation failure.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},{"type":"object","additionalProperties":false,"description":"Payment-flow validation failure. Node and setting details are included when known.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0943","E0944","E0945","E0948","E0950"],"examples":["E0943"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"node_id":{"type":"string","description":"Identifies the affected payment-flow node when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"invalid_setting":{"type":"string","description":"Identifies an invalid node setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"explanation":{"type":"string","description":"Explains the invalid setting when available.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}]}}}},"402":{"description":"Payment declined or unsuccessful, as indicated by the response code.","content":{"application/json":{"schema":{"type":"object","description":"An unsuccessful trial expiration payment, including payment totals and recovery details when available.","additionalProperties":false,"properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"code":{"type":"integer","description":"The payment outcome: 2 for declined, 3 for an error.","enum":[2,3],"examples":[2]},"message":{"type":"string","description":"A human-readable explanation of the unsuccessful payment.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"result":{"type":"string","description":"The payment outcome summary.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_id":{"type":"string","title":"Campaign ID","description":"A 20 character campaign ID.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"campaign_name":{"type":"string","description":"The campaign name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"customer_id":{"title":"Customer ID","type":"string","description":"A 20 character customer ID.","minLength":20,"maxLength":20,"examples":["4r158EzJmmcVM69dNLkg"]},"gateway":{"type":"string","description":"The gateway name, when an attempt reached a gateway.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_raw_response":{"type":["object","string"],"description":"The response returned by the gateway, as a JSON object or text.","additionalProperties":true},"custom_error":{"type":"string","description":"The payment-profile message supplied for a declined payment, when configured.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"payment_profile_results":{"type":"object","description":"Payment-profile results, when a payment profile was used.","additionalProperties":false,"properties":{"declined_transaction_array":{"type":"array","description":"IDs of declined transactions from this attempt.","items":{"type":"string","description":"A 20 character transaction ID.","minLength":20,"maxLength":20,"examples":["d9ZoKG0n2pIwBG60Q6aW"]}},"final_amount":{"type":"number","description":"The final amount evaluated by the payment profile.","examples":[0]},"num_declined_transactions":{"type":"integer","description":"The number of declined transactions.","examples":[0]},"original_amount":{"type":"number","description":"The amount before payment-profile adjustments.","examples":[0]},"payment_profile_id":{"type":"string","title":"Payment Profile ID","description":"A 20 character payment profile ID.","minLength":20,"maxLength":20,"examples":["Q48aAbVv21fJRvNKWrvP","AVjVVBr7QKF1ovd20w21"]},"payment_profile_name":{"type":"string","description":"The payment profile name.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_array":{"type":"array","description":"The payment-profile steps and their outcomes.","items":{"type":"object","description":"The result of one payment-profile step.","additionalProperties":false,"properties":{"kill_profile":{"type":"boolean","description":"Whether this step stopped the payment profile."},"kill_term":{"type":"string","description":"The configured response term that stopped the payment profile, when matched.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_action":{"type":"string","description":"The payment action for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_amount":{"type":"number","description":"The payment amount for this step.","examples":[0]},"step_card":{"type":"string","minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of the card selected for this payment step. Omitted when no card ID is available; never null or an empty string.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_cascade_result":{"type":["object","null"],"description":"Gateway selection details for this step, when available. The fields depend on the configured routing method.","additionalProperties":true},"step_gateway":{"type":"string","description":"The gateway name for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_id":{"type":"string","description":"The 20 character RevCent ID of the gateway for this step. An empty string is returned when no ID is available.","maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_gateway_response":{"type":"string","description":"The gateway result message.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_modifier":{"type":"string","description":"The configured amount modifier for this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_num":{"type":"integer","description":"The step number.","examples":[0]},"step_result":{"type":"string","description":"The step outcome.","enum":["Approved","Declined","Error"],"examples":["Approved"]},"step_setting":{"type":"string","description":"The setting used by this step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"step_source":{"type":"string","description":"The routing source for this step.","enum":["cascade","flow","gateway"],"examples":["cascade"]},"step_transaction":{"type":["string","null"],"description":"The 20 character RevCent ID of the transaction for this step.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"swap_card":{"type":"boolean","description":"Whether this step selected a different card."}}}},"successful_gateway":{"type":["string","null"],"description":"The successful gateway, or null when there was no successful step.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"successful_step_num":{"type":["number","null"],"description":"The successful step number, or null when there was no successful step.","examples":[0]}}},"reconciliation_required":{"type":"boolean","description":"Whether the payment outcome requires reconciliation before another attempt."},"salvage_transaction":{"type":["object","null"],"description":"The salvage transaction created for this failure, or null when none was created.","additionalProperties":false,"properties":{"amount":{"type":"number","description":"The amount to recover.","examples":[0]},"enabled":{"type":"boolean","description":"Whether recovery is enabled."},"id":{"type":"string","description":"A 20 character salvage transaction ID.","minLength":20,"maxLength":20,"examples":["VPm9Mqmgw7UJJLldojJY"]},"sale_creator":{"type":"boolean","description":"Whether successful recovery creates a sale."}}},"salvage_transaction_created":{"type":"boolean","description":"Whether a salvage transaction was created for this failure."},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"amount":{"type":"number","description":"The attempted amount. Present when payment totals are available.","examples":[0]},"amount_captured":{"type":"number","description":"The amount captured. Present when payment totals are available.","examples":[0]},"amount_discounted":{"type":"number","description":"The discount amount. Present when payment totals are available.","examples":[0]},"amount_fees":{"type":"number","description":"The fee amount. Present when payment totals are available.","examples":[0]},"amount_gross":{"type":"number","description":"The gross amount. Present when payment totals are available.","examples":[0]},"amount_net":{"type":"number","description":"The net amount. Present when payment totals are available.","examples":[0]},"amount_original_total":{"type":"number","description":"The original total amount. Present when payment totals are available.","examples":[0]},"amount_remaining":{"type":"number","description":"The remaining amount. Present when payment totals are available.","examples":[0]},"amount_to_salvage":{"type":"number","description":"The amount to recover. Present when payment totals are available.","examples":[0]}}}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/{trial_id}/extend":{"post":{"summary":"Extend A Trial","description":"Extend a trial by a specified number of days using the trial ID.","operationId":"ExtendTrial","x-api-permission-description":"Allows the extending of trials.","x-api-permission":"trial:extend","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ExtendTrial.md","tags":["Trials"],"parameters":[{"in":"path","name":"trial_id","description":"The trial ID.","required":true,"schema":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"days":{"description":"The number of days to extend the trial period by.","type":"integer","minimum":1,"examples":[1]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/{trial_id}/shorten":{"post":{"summary":"Shorten A Trial","description":"Shorten a trial by a specified number of days using the trial ID.","operationId":"ShortenTrial","x-api-permission-description":"Allows the shortening of trials.","x-api-permission":"trial:shorten","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ShortenTrial.md","tags":["Trials"],"parameters":[{"in":"path","name":"trial_id","description":"The trial ID.","required":true,"schema":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"days":{"description":"The number of days to shorten the trial period by.","type":"integer","minimum":1,"examples":[1]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/{trial_id}/cancel":{"post":{"summary":"Cancel A Trial","description":"Cancel a trial using the trial ID. This will also cancel any subscription that is associated with the trial.","operationId":"CancelTrial","x-api-permission-description":"Allows the cancelling of trials.","x-api-permission":"trial:cancel","x-ai-options":["ai_assistant","ai_voice_agent","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CancelTrial.md","tags":["Trials"],"parameters":[{"in":"path","name":"trial_id","description":"The trial ID.","required":true,"schema":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"trial_id":{"type":"string","description":"A 20 character trial ID.","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"result":{"type":"string","examples":["Trial cancelled."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/trials/search":{"get":{"summary":"Search Trials","description":"Find trials using a search term and return up to ten relevance-ordered summaries. Use a result’s id with GetTrial for fuller details. Results are not exhaustive or paginated.","operationId":"SearchTrials","x-api-permission-description":"Allows the searching of trials.","x-api-permission":"trial:search","x-ai-options":["ai_assistant","mcp"],"x-additional-info":"Useful for finding a trial when you do not know the trial ID and wish to retrieve the details of a specific trial. Once a trial has been found, use an individual search results' id property and the GetTrial operation to retrieve the trial details.<br><br>Important: If using the SearchTrials and GetTrial method within a public facing flow, i.e. a visitor is providing the search input in a public chat bot, it is highly recommended that you also verify the visitor is indeed related to the trial using a secondary non-provided value, such as the customer ZIP code in the GetTrial response, before providing information or taking action.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/SearchTrials.md","tags":["Trials"],"parameters":[{"name":"search_term","description":"Required search term or phrase. Leading and trailing whitespace is removed; blank input is rejected. The last entry in a nonempty repeated-value list takes precedence, even if blank; otherwise the single value is used. No date, pagination or other query parameters are accepted.","in":"query","required":true,"schema":{"type":"string","examples":["George Washington","georgew@whitehouse.gov","1600 Pennsylvania Ave"]},"style":"form","x-additional-info":"Searches trial IDs, customer first and last names, email addresses, phone numbers, first address lines and trial metadata values. Matching information may differ from the available customer details returned."}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A limited set of trial search summaries with available matching information.","type":"object","additionalProperties":false,"properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"A value of 1 indicates successful search retrieval, not a trial or payment outcome.","type":"integer","format":"int32","const":1,"examples":[1]},"results":{"type":"array","maxItems":10,"description":"Up to ten matches in descending result relevance. Results may be empty or fewer after unavailable matches are omitted; this is not an exhaustive or paginated collection. Omitted matches are not replaced. Use id with GetTrial for fuller details when available.","items":{"type":"object","additionalProperties":false,"properties":{"address_line_1":{"type":"string","description":"Available customer first address line. Empty or historical text may be returned and may differ from the information that matched.","examples":["1600 Pennsylvania Ave"]},"address_line_2":{"type":"string","description":"Available customer second address line. Empty or historical text may be returned and may differ from the information that matched.","examples":["West Wing"]},"city":{"type":"string","description":"Available customer city. Empty or historical text may be returned and may differ from the information that matched.","examples":["Washington"]},"created_date_unix":{"description":"Trial creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"customer_id":{"type":"string","minLength":20,"maxLength":20,"description":"20 character RevCent ID of the associated customer, when available. Other customer details may be available independently.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"email":{"type":"string","format":"email","description":"Available valid customer email address; omitted when unavailable or invalid. It can differ from the email that matched.","examples":["georgew@whitehouse.gov"]},"end_date_unix":{"type":"integer","format":"unix-time","description":"Available trial end time in Unix seconds. Omitted when unavailable or invalid; never replaced with the request time.","examples":[1893499200]},"first_name":{"type":"string","description":"Available customer first name. Empty or historical text may be returned and may differ from the information that matched.","examples":["George"]},"highlights":{"type":"array","description":"Optional matching categories and text fragments, which may be incomplete or differ from the available returned customer details.","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","enum":["address_line_1","email","first_name","id","last_name","metadata","phone"],"description":"Public category of the highlighted match; it need not identify the exact current response value.","examples":["last_name"]},"values":{"type":"array","description":"Available matching text fragments for this category; may be empty.","items":{"type":"string","examples":["Washington"]}},"score":{"type":"number","description":"Optional finite relevance information for this highlighted passage, separate from the whole result score. No 0–1 range is guaranteed.","examples":[0]},"full_text":{"type":"string","description":"Available metadata match text with context, returned only for metadata highlights. It need not contain the complete metadata value or correspond to an entry in the returned metadata array.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}},"id":{"description":"The trial's 20 character RevCent ID, for GetTrial.","type":"string","minLength":20,"maxLength":20,"examples":["LY5yop5nk7hb6o2Pvl5j"]},"item_type":{"type":"string","const":"trial","description":"The item type returned in the search result.","examples":["trial"]},"last_name":{"type":"string","description":"Available customer last name. Empty or historical text may be returned and may differ from the information that matched.","examples":["Washington"]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates. May be absent or empty and is not guaranteed complete.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Metadata name supplied by the consumer, up to 100 characters.","examples":["website"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"Associated metadata value supplied by the consumer, up to 255 characters.","examples":["mystore.com"]}}}},"phone":{"type":"string","description":"Available customer phone text. Empty or historical text may be returned and may differ from the information that matched.","examples":["1234567890"]},"score":{"type":"number","description":"Relevance information for the whole result, distinct from individual highlight scores. Higher scores indicate greater relevance, without a guaranteed 0–1 range. Returns 1 when absent; explicit null or invalid values are omitted.","examples":[7.68]},"start_date_unix":{"type":"integer","format":"unix-time","description":"Available trial start time in Unix seconds. Omitted when unavailable or invalid; never replaced with the request time.","examples":[1893499200]},"state":{"type":"string","description":"Available customer state or region. Empty or historical text may be returned and may differ from the information that matched.","examples":["DC"]},"status":{"type":"string","description":"Available trial status text, including empty or historical values; omitted when unavailable or invalid. It need not equal GetTrial's display status.","examples":["Active","Expired"]},"url":{"type":"string","format":"uri","description":"The RevCent trial-details URL identifying this result's id.","examples":["https://revcent.com/user/trial-details/gYQYYJlMXYHXXL709WlR"]},"zip":{"type":"string","description":"Available customer ZIP or postal code. Empty or historical text may be returned and may differ from the information that matched.","examples":["20500"]}}}}}}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/url_parameter_sets":{"get":{"summary":"Get URL Parameter Sets","description":"Retrieve a page of URL parameter sets used to configure URL-to-metadata mappings for tracking domains. Results are ordered from newest to oldest. Use a returned ID with GetUrlParameterSet for details.","operationId":"GetUrlParameterSets","x-api-permission-description":"Allows the retrieval of URL Parameter Sets.","x-api-permission":"url_parameter_set:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUrlParameterSets.md","tags":["Tracking"],"parameters":[{"description":"Required maximum number of URL parameter sets per page, from 1 to 25. There is no default. The last value in a nonempty repeated-value list takes precedence; otherwise the single value is used.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Zero selects page one. The last value in a nonempty repeated-value list takes precedence; otherwise the single value is used. Pages above 20 cannot be requested, even when total_pages is larger. Only limit and page are accepted; this operation has no date or other filters.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of URL parameter sets and matching pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp in seconds when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the configuration list was retrieved successfully.","type":"integer","format":"int32","const":1,"examples":[1]},"current_count":{"description":"Number of resources returned on this page. Empty and beyond-last pages return 0.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Selected page, with a submitted page of 0 represented as 1.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","description":"Returned URL parameter mapping configuration for use with tracking domains.","additionalProperties":false,"properties":{"created_date_unix":{"description":"URL parameter set creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The URL parameter set's 20 character RevCent ID, usable with GetUrlParameterSet.","type":"string","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"name":{"description":"Configuration name. Empty and historical text are preserved; unavailable text is returned as an empty string.","type":"string","examples":["My URL Parameter Set"]},"description":{"description":"Configuration description. Empty and historical text are preserved; unavailable text is returned as an empty string.","type":"string","examples":["The URL parameter set for mystore.com"]},"enabled":{"description":"Whether the URL parameter set is enabled. False is returned when it is not enabled.","type":"boolean","examples":[true]},"url_parameters":{"type":"array","description":"Available mapping configuration in configured order, preserving duplicates. Unusable mappings are omitted; unavailable mappings return an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"Configured URL query-parameter name. Empty and historical text are preserved.","type":"string","examples":["utm_source"]},"metadata_name":{"description":"Configured metadata name. Create/Edit uses the URL parameter name when no metadata name is supplied; this response preserves the available value, including empty historical text.","type":"string","examples":["utm_source"]},"default_value":{"description":"Configured default text, or an empty string when unavailable.","type":"string","examples":[""]},"days":{"description":"Configured duration in days. Zero is preserved; unavailable or invalid values are returned as 30.","type":"integer","minimum":0,"examples":[30]}}}},"updated_date_unix":{"description":"URL parameter set update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Available URL parameter sets, newest creation first with stable ordering for equal creation times. An empty array is returned beyond the last page."},"total_count":{"description":"Total available URL parameter sets matching the account and availability requirements, before pagination.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"total_count divided by limit, rounded up; 0 for an empty collection. May exceed 20, although pages above 20 cannot be requested.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A URL Parameter Set","description":"Create a URL Parameter Set, which will issue a unique URL Parameter Set ID.","operationId":"CreateUrlParameterSet","x-api-permission-description":"Allows the creation of URL Parameter Sets.","x-api-permission":"url_parameter_set:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateUrlParameterSet.md","tags":["Tracking"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The URL Parameter Set name. Must be unique from other URL Parameter Sets.","examples":["Example"]},"description":{"type":"string","description":"The URL Parameter Set description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the URL Parameter Set is enabled."},"url_parameters":{"type":"array","description":"A list of URL parameters to save. You indicate the URL parameter to save along with the metadata name to save the value as.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"The URL parameter to save. For example, if the URL parameter is 'utm_source', then RevCent will save the value of the utm_source parameter for all visitors and purchases to your stores via RevCent's in house DNS tracking.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata_name":{"description":"The name to save the URL parameter as in RevCent's metadata. It is common practice to set the metadata_name as the same as the url_parameter. If left empty, RevCent will save the URL parameter value to metadata using the URL parameter as the metadata name. For example, if the URL parameter is 'utm_source', and the metadata_name is left empty, then RevCent will save the value of the utm_source URL parameter to metadata with the metadata name of 'utm_source'. If the URL parameter is 'utm_source', and the metadata_name is set to 'source', then RevCent will save the value of the utm_source URL parameter to the visitors' metadata with the metadata name of 'source'. Recommended to leave empty or set the same as url_parameter.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"default_value":{"description":"The default value to save for the URL parameter if the URL parameter is present in the URL but you wish to save a default value intead of the value in the URL. This is optional. If not provided, RevCent will save the value in the URL. For example, if the URL parameter is 'utm_source', but you want to save the value as 'organic' regardless of the actual utm_source value in the URL, then you would set the default_value to 'organic'. Recommended to leave empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"days":{"description":"The number of days to save the URL parameter name/value to a specific visitor, i.e. the cookie age for the visitor for the URL parameter. This is optional. If not provided, RevCent will use the default value of 30 days. Recommended value is 30.","type":"integer","examples":[0]}},"required":["url_parameter"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"url_parameter_set_id":{"type":"string","description":"A 20 character URL parameter set ID.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/url_parameter_sets/{url_parameter_set_id}":{"get":{"summary":"Get A URL Parameter Set","description":"Retrieve a specific URL parameter set and its URL-to-metadata mapping configuration. No query parameters are accepted.","operationId":"GetUrlParameterSet","x-api-permission-description":"Allows the retrieval of URL Parameter Sets.","x-api-permission":"url_parameter_set:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUrlParameterSet.md","tags":["Tracking"],"parameters":[{"in":"path","name":"url_parameter_set_id","description":"20 character RevCent ID of the URL parameter set to retrieve.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the URL parameter set to retrieve.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested URL parameter set.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the URL parameter set was retrieved successfully.","type":"integer","const":1,"examples":[1]},"created_date_unix":{"description":"URL parameter set creation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"id":{"description":"The URL parameter set's 20 character RevCent ID, usable with GetUrlParameterSet.","type":"string","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"name":{"description":"Configuration name. Empty and historical text are preserved; unavailable text is returned as an empty string.","type":"string","examples":["My URL Parameter Set"]},"description":{"description":"Configuration description. Empty and historical text are preserved; unavailable text is returned as an empty string.","type":"string","examples":["The URL parameter set for mystore.com"]},"enabled":{"description":"Whether the URL parameter set is enabled. False is returned when it is not enabled.","type":"boolean","examples":[true]},"url_parameters":{"type":"array","description":"Available mapping configuration in configured order, preserving duplicates. Unusable mappings are omitted; unavailable mappings return an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"Configured URL query-parameter name. Empty and historical text are preserved.","type":"string","examples":["utm_source"]},"metadata_name":{"description":"Configured metadata name. Create/Edit uses the URL parameter name when no metadata name is supplied; this response preserves the available value, including empty historical text.","type":"string","examples":["utm_source"]},"default_value":{"description":"Configured default text, or an empty string when unavailable.","type":"string","examples":[""]},"days":{"description":"Configured duration in days. Zero is preserved; unavailable or invalid values are returned as 30.","type":"integer","minimum":0,"examples":[30]}}}},"updated_date_unix":{"description":"URL parameter set update time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A URL Parameter Set","description":"Edit a previously created URL Parameter Set using the URL Parameter Set ID. Only supplied fields are updated.","operationId":"EditUrlParameterSet","x-api-permission-description":"Allows the editing of URL Parameter Sets.","x-api-permission":"url_parameter_set:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditUrlParameterSet.md","tags":["Tracking"],"parameters":[{"in":"path","name":"url_parameter_set_id","description":"The URL Parameter Set ID","required":true,"schema":{"type":"string","description":"A 20 character URL parameter set ID.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The URL Parameter Set name. Must be unique from other URL Parameter Sets.","examples":["Example"]},"description":{"type":"string","description":"The URL Parameter Set description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the URL Parameter Set is enabled."},"url_parameters":{"type":"array","description":"All url parameters to associate with the URL Parameter Set. Only provide the 'url_parameters' array if it contains all URL parameters you want in the set. If the array is provided and is empty, then all URL parameters will be removed from the set. If the array is not provided, then the URL parameters in the set will remain unchanged.","items":{"type":"object","additionalProperties":false,"properties":{"url_parameter":{"description":"The URL parameter to save. For example, if the URL parameter is 'utm_source', then RevCent will save the value of the utm_source parameter for all visitors and purchases to your stores via RevCent's in house DNS tracking.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"metadata_name":{"description":"The name to save the URL parameter as in RevCent's metadata. It is common practice to set the metadata_name as the same as the url_parameter. If left empty, RevCent will save the URL parameter value to metadata using the URL parameter as the metadata name. For example, if the URL parameter is 'utm_source', and the metadata_name is left empty, then RevCent will save the value of the utm_source URL parameter to metadata with the metadata name of 'utm_source'. If the URL parameter is 'utm_source', and the metadata_name is set to 'source', then RevCent will save the value of the utm_source URL parameter to the visitors' metadata with the metadata name of 'source'. Recommended to leave empty or set the same as url_parameter.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"default_value":{"description":"The default value to save for the URL parameter if the URL parameter is present in the URL but you wish to save a default value intead of the value in the URL. This is optional. If not provided, RevCent will save the value in the URL. For example, if the URL parameter is 'utm_source', but you want to save the value as 'organic' regardless of the actual utm_source value in the URL, then you would set the default_value to 'organic'. Recommended to leave empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"days":{"description":"The number of days to save the URL parameter name/value to a specific visitor, i.e. the cookie age for the visitor for the URL parameter. This is optional. If not provided, RevCent will use the default value of 30 days. Recommended value is 30.","type":"integer","examples":[0]}},"required":["url_parameter"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"url_parameter_set_id":{"type":"string","description":"A 20 character URL parameter set ID.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/url_parameter_sets/{url_parameter_set_id}/delete":{"post":{"summary":"Delete A URL Parameter Set","description":"Delete a specific URL parameter set using the URL parameter set ID and delete path.<br><br>Any Tracking Domains associated with the set will be disassociated from the set.","operationId":"DeleteURLParameterSet","x-api-permission-description":"Allows the deletion of URL Parameter Sets.","x-api-permission":"url_parameter_set:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteURLParameterSet.md","tags":["Tracking"],"parameters":[{"in":"path","name":"url_parameter_set_id","description":"The URL Parameter Set ID","required":true,"schema":{"type":"string","description":"A 20 character URL parameter set ID.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{}}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"url_parameter_set_id":{"type":"string","description":"A 20 character URL parameter set ID.","minLength":20,"maxLength":20,"examples":["JNJWJPWO6jtOzb9ol1lm"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_gateways":{"get":{"summary":"Get User Gateways","description":"Retrieve a page of account gateway configurations, including provider, gateway-group, routing and token settings. Results are ordered from newest to oldest, with stable ordering for equal creation times.","operationId":"GetUserGateways","x-api-permission-description":"Allows the retrieval of user gateways.","x-api-permission":"user_gateway:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserGateways.md","tags":["Gateways"],"parameters":[{"description":"Required maximum number of gateway configurations per page, from 1 to 25. There is no default. Repeated pagination values are rejected.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number, from 0 to 20. Zero selects page one. Repeated pagination values are rejected. Only limit and page are accepted; there are no date or status filters. A short or empty result does not necessarily indicate the final page; use total_pages, subject to the page-20 limit.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"A page of account gateway configurations and matching pagination totals.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the gateway configurations were retrieved successfully.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of returned configurations after unusable entries are omitted. A short or empty result does not necessarily indicate the final page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Selected page; a submitted zero is returned as page one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Available creation time in Unix seconds; omitted when unusable.","type":"integer","format":"unix-time","examples":[1675367500]},"custom_descriptor":{"type":"object","additionalProperties":false,"description":"Optional configured descriptor for gateways that support it. Returned when a descriptor name is available, including empty text; other available descriptor fields are independent. Availability does not confirm provider acceptance.","properties":{"enabled":{"description":"Whether the custom descriptor is enabled.","type":"boolean","examples":[true]},"name":{"description":"The custom descriptor name.","type":"string","examples":["Acme Org"]},"email":{"description":"The custom descriptor email.","type":"string","examples":["email@acme.org"]},"url":{"description":"The custom descriptor url.","type":"string","examples":["https://www.acme.org"]},"phone":{"description":"The custom descriptor phone.","type":"string","examples":["888-867-5399"]},"address":{"description":"The custom descriptor address.","type":"string","examples":["1600 Pennsylvania Ave"]},"city":{"description":"The custom descriptor city.","type":"string","examples":["Washington"]},"state":{"description":"The custom descriptor state.","type":"string","examples":["DC"]},"postal_code":{"description":"The custom descriptor postal code.","type":"string","examples":["20500"]}}},"description":{"description":"Available configuration description, including empty or historical text; omitted when unavailable.","type":"string","examples":["Authorize.net gateway MID 1234."]},"discount_rate":{"description":"Configured discount rate as a percentage; 2.5 means 2.5%. This is a configuration value, not the amount charged for a transaction.","type":"number","format":"float","examples":[2.52]},"enabled":{"description":"Whether this account gateway is enabled, when available.","type":"boolean","examples":[true]},"id":{"description":"The configured User Gateway's 20 character RevCent ID, usable with GetUserGateway.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_group":{"description":"Available gateway-group summaries in first-occurrence order, deduplicated by identity. Unavailable or unusable summaries are omitted. More than 1,000 configured group references cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the gateway group.","type":"string","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"name":{"description":"Available group label, including empty or historical text.","type":"string","examples":["My Gateway Group"]}}},"maxItems":1000,"uniqueItems":true},"global_cascade_rules":{"type":"object","additionalProperties":false,"description":"Configured time and revenue rules used to determine gateway availability for payment routing.","properties":{"enabled":{"description":"Whether global rules are enabled.","type":"boolean","examples":[true]},"revenue_rules":{"type":"object","additionalProperties":false,"description":"Configured revenue comparisons. See <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#revenue-rules\" target=\"_blank\">revenue-rule guidance</a>.","properties":{"enabled":{"description":"Whether revenue rules are enabled.","type":"boolean","examples":[true]},"options":{"description":"Available rules in configured order, up to 1,000 entries. Unusable entries or fields may be omitted. More than 1,000 configured entries cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean","examples":[true]},"bound":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["min","max"],"examples":["min","max"]},"rule_value":{"description":"Configured threshold for the selected source, calculation and bound, retaining available finite precision.","type":"number","format":"float","examples":[5]},"source":{"description":"The source, in combination with the source value and calculation, is what is used to form the calculation value.","type":"string","enum":["gateway","global","step"],"examples":["gateway","global","step"]},"source_value":{"description":"The source value is specific to the source selected.","type":"string","enum":["captured","declined","chargeback","total","amount"],"examples":["captured","declined","chargeback","total","amount"]},"calculation":{"description":"The calculation to perform based on the source value.","type":"string","enum":["count","percent","sum"],"examples":["count","percent","sum"]},"time_value":{"description":"Configured lookback-window value, returned rounded to a whole number, together with time_unit.","type":"integer","examples":[1]},"time_unit":{"description":"Unit used with time_value for the configured lookback window.","type":"string","enum":["hour","day","week","month"],"examples":["hour","day","week","month"]},"id":{"type":"string","minLength":1,"description":"Optional nonempty identifier of this revenue rule, omitted when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"maxItems":1000}}},"time_rules":{"type":"object","additionalProperties":false,"description":"Configured UTC time rules. See <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#time-rules\" target=\"_blank\">time-rule guidance</a>.","properties":{"enabled":{"description":"Whether time rules are enabled.","type":"boolean","examples":[true]},"options":{"description":"Available rules in configured order, up to 1,000 entries. Unusable entries or fields may be omitted. More than 1,000 configured entries cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual time rule is enabled.","type":"boolean","examples":[true]},"start_time":{"description":"Configured start time in UTC. Current configuration uses hh:mmam or hh:mmpm (for example 09:00am); historical hh:mm:am/pm and other saved strings are preserved without a format guarantee.","type":"string","examples":["12:00am"]},"end_time":{"description":"Configured end time in UTC. Current configuration uses hh:mmam or hh:mmpm (for example 09:00am); historical hh:mm:am/pm and other saved strings are preserved without a format guarantee.","type":"string","examples":["11:59pm"]},"name":{"description":"The specific weekday that the time rule applies.","type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"examples":["sunday"]},"option":{"description":"Configured allow or deny choice for the selected weekday/time range.","type":"string","enum":["allow","deny"],"examples":["deny"]}}},"maxItems":1000}}}}},"merchant_account_id":{"description":"Configured merchant account identifier (MID), or empty text when unavailable.","type":"string","examples":["845678"]},"name":{"description":"Available configuration name, including empty or historical text; omitted when unavailable.","type":"string","examples":["Authorize"]},"site_gateway":{"type":"object","additionalProperties":false,"description":"The gateway provider definition associated with this account gateway.","properties":{"id":{"description":"20 character RevCent ID of the gateway provider definition.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"description":"Provider label, including available empty or historical text.","type":"string","examples":["Authorize.net"]}}},"transaction_fail_fee":{"description":"Configured fixed fee amount for failed or declined transactions, when available. This response does not identify its currency or establish the amount actually charged.","type":"number","format":"float","examples":[0.25]},"transaction_success_fee":{"description":"Configured fixed fee amount for approved transactions, when available. This response does not identify its currency or establish the amount actually charged.","type":"number","format":"float","examples":[0.55]},"smart_bin":{"type":"object","additionalProperties":false,"description":"Retrieved SmartBin configuration. Historical and empty values are preserved and do not establish current processor, acquirer or card-brand support. See the <a href=\"https://kb.revcent.com/en/payments/credit-card/smartbin\" target=\"_blank\">SmartBin knowledge base</a>.","properties":{"mcc":{"description":"Configured merchant category code text; may be empty or historical.","type":"string","examples":["5812"]},"processor":{"description":"Configured processor label; may be empty or historical.","type":"string","examples":["tsys_sierra"]},"visa":{"type":"object","description":"Retrieved Visa SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Visa merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Visa acquiring BIN text.","type":"string","examples":["414572"]},"acquirer":{"type":"string","description":"Configured Visa acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"mastercard":{"type":"object","description":"Retrieved Mastercard SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Mastercard merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Mastercard acquiring BIN text.","type":"string","examples":["524786"]},"acquirer":{"type":"string","description":"Configured Mastercard acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"discover":{"type":"object","description":"Retrieved Discover SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Discover merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Discover acquiring BIN text.","type":"string","examples":["620207"]},"acquirer":{"type":"string","description":"Configured Discover acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"amex":{"type":"object","description":"Retrieved American Express SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured American Express merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured American Express acquiring BIN text.","type":"string","examples":["10000000002"]},"acquirer":{"type":"string","description":"Configured American Express acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}}}},"token_settings":{"description":"Gateway token settings for saved payment methods. Use requires support from the gateway and the appropriate merchant configuration. Network tokens additionally require gateway tokens to be enabled. These flags do not confirm that a usable token exists.","properties":{"network_token_enabled":{"description":"Whether network token use is enabled along with gateway tokens. Requires provider support and merchant configuration; returned false when gateway tokens are disabled.","type":"boolean","examples":[false]},"gateway_token_enabled":{"description":"Whether gateway token use is enabled for saved payment methods; false when not configured. Requires gateway tokenization support.","type":"boolean","examples":[false]}},"type":"object","additionalProperties":false},"updated_date_unix":{"description":"Available configuration update time in Unix seconds; omitted when unusable.","type":"integer","format":"unix-time","examples":[1675367500]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates. May be empty and is not guaranteed complete.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The metadata name.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}},"type":"array","maxItems":25,"description":"Up to 25 available gateway configurations, newest creation first with stable ordering for equal creation times. Unusable entries are omitted without replacement; matching totals are retained."},"total_count":{"description":"Number of matching account gateways before omissions for unusable identities or unavailable gateway relationships. May exceed the number of configurations available in results.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"total_count divided by limit, rounded up. Can exceed 20 even though pages above 20 cannot be requested; zero for no matches.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A User Gateway","description":"Create a payment gateway using a site gateway and its required credentials. The API key determines the live or test environment.","operationId":"CreateUserGateway","x-api-permission-description":"Allows the creation of user gateways.","x-api-permission":"user_gateway:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway","x-kb-name":"Gateways","x-md-link":"markdown/mcp/operation/CreateUserGateway.md","tags":["Gateways"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The user gateway name. Must be unique from other user gateway names.","type":"string","examples":["Example"]},"site_gateway_id":{"type":"string","description":"A 20 character site gateway ID which is associated with the user gateway.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials. For Checkout.com, field_3 must contain the complete cli_ client_id for the API key’s live or test environment. Use the selected gateway’s credential definitions for any wallet requirements.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"description":"The fields required for the user gateway based on the id of the site gateway fields. For Checkout.com, field_3 must contain the complete cli_ client_id for the API key’s live or test environment. Use the selected gateway’s credential definitions for any wallet requirements.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The id for the individual field according to the site gateway fields required.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"description":"The value for the individual field according to the site gateway fields required.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]},"minItems":1,"maxItems":50},"custom_descriptor":{"type":"object","additionalProperties":false,"description":"The custom descriptor for the user gateway. Will be provided to supported gateways as well as provided as shortcodes in email templates.","properties":{"enabled":{"description":"Whether the custom descriptor is enabled.","type":"boolean"},"name":{"description":"The custom descriptor name.","type":"string","examples":["Example"]},"email":{"description":"The custom descriptor email.","type":"string","examples":["alex@example.com"]},"url":{"description":"The custom descriptor url.","type":"string","examples":["https://example.com"]},"phone":{"description":"The custom descriptor phone.","type":"string","examples":["+12025550123"]},"address":{"description":"The custom descriptor address.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"city":{"description":"The custom descriptor city.","type":"string","examples":["Boston"]},"state":{"description":"The custom descriptor state.","type":"string","examples":["MA"]},"postal_code":{"description":"The custom descriptor postal code.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"description":{"description":"The user gateway description.","type":"string","examples":["Example description"]},"discount_rate":{"description":"The discount rate specific to the MID.","type":"number","format":"float"},"enabled":{"description":"Whether the user gateway is currently enabled.","type":"boolean"},"global_cascade_rules":{"type":"object","additionalProperties":false,"description":"Global cascade rules, which determine whether or not the gateway should be used for a specific transaction when choosing a gateway. <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#global-cascade-rules-1\" target=\"_blank\">Read More</a>.","properties":{"enabled":{"description":"Whether global cascade rules are enabled.","type":"boolean"},"revenue_rules":{"type":"object","additionalProperties":false,"description":"Revenue rules are specific to the gateway, and allow or disallow the use of the gateway based on payment volume, occurrences and more. You can add multiple revenue rules to a gateway within the cascade. <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#global-cascade-rules-1\" target=\"_blank\">Read More</a>","properties":{"enabled":{"description":"Whether revenue rules are enabled.","type":"boolean"},"options":{"description":"An array of individual revenue rules.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean"},"bound":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["min","max"],"examples":["min"]},"rule_value":{"description":"The rule value is compared with the calculation value and bound.","type":"number","format":"float"},"source":{"description":"The source, in combination with the source value and calculation, is what is used to form the calculation value.","type":"string","enum":["gateway","global","step"],"examples":["gateway"]},"source_value":{"description":"The source value is specific to the source selected.","type":"string","enum":["captured","declined","chargeback","total","amount"],"examples":["captured"]},"calculation":{"description":"The calculation to perform based on the source value.","type":"string","enum":["count","percent","sum"],"examples":["count"]},"time_value":{"description":"The total amount of time the rule applies in a past time range. Used in conjunction with the time unit.","type":"integer","minimum":1,"maximum":10000,"examples":[1]},"time_unit":{"description":"The time unit. Used in conjunction with the time value.","type":"string","enum":["hour","day","week","month"],"examples":["hour"]}}},"maxItems":100}}},"time_rules":{"type":"object","additionalProperties":false,"description":"Time rules are specific to the gateway, and allow or disallow the use of the gateway based on time settings. All time rules are GMT (UTC+0). <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#global-cascade-rules-1\" target=\"_blank\">Read More</a>","properties":{"enabled":{"description":"Whether time rules are enabled.","type":"boolean"},"options":{"description":"An array of individual time rules.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual time rule is enabled.","type":"boolean"},"start_time":{"description":"The start time, formatted as hh:mm:a","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"end_time":{"description":"The end time, formatted as hh:mm:a","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The specific weekday that the time rule applies.","type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"examples":["monday"]},"option":{"description":"Whether to allow or deny the gateway from processing the step transaction based on the current GMT time and the rule day and time ranges.","type":"string","enum":["allow","deny"],"examples":["allow"]}}},"maxItems":100}}}}},"merchant_account_id":{"description":"The merchant account id or MID specific to the user gateway.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"transaction_fail_fee":{"description":"The flat fee for failed or declined transactions.","type":"number","format":"float"},"transaction_success_fee":{"description":"The flat fee for approved transactions.","type":"number","format":"float"},"smart_bin":{"type":"object","additionalProperties":false,"description":"If SmartBin is enabled for the RevCent account, the SmartBin settings for the user gateway. When enabled, SmartBin gives you the ability to have payments automatically routed to the gateway that has the highest statistical likelihood of success.<br><br>These are advanced settings and should only be provided if using SmartBin. If using SmartBin and creating a new gateway via CreateUserGateway, attempt to complete as many fields as possible to allow the SmartBin algorithm to have the most information available when determining the best gateway. If editing a gateways' smart_bin object via the EditUserGateway operation, the entire smart_bin object must be present, i.e. the smart_bin object in the request will overwrite existing if provided, so all properties should be retrieved first before editing.<br><br>For more information on SmartBin, please visit our <a href\"https://kb.revcent.com/en/payments/credit-card/smartbin\" target=\"_blank\">knowledge base</a>.","properties":{"mcc":{"description":"The MCC for the specific gateway.","type":"string","examples":["5812"]},"processor":{"description":"The processor for the specific gateway.","type":"string","examples":["tsys_sierra"],"enum":["ach_com","acheck","achnow","aci_pay_on","axe_pay_plus","bluesnap","boltpay","card_pmt","cash","cashflows","chase_paymentech_netconnect","chase_paymentech_salem","chase_paymentech_tampa","checkout_com","consumer_choice","credorax_v_2","elavon","elavon_emv","epx","evertec","evo","finest_finance_aci","first_data_canada","first_data_nashville","first_data_north_v_2","first_data_omaha","first_data_rapid_connect_cardnet_north_emv","first_data_rapid_connect_nashville_emv","fiserv_pepper_pay_pinless_debit","fiserv_rapid_hc_host_capture_surcharge_debit_repayment","fiserv_rapid_otc_online_terminal_capture_level_3","flex","gateway_duel_pricing","global_payments_canada","global_payments_east_emv","global_payments_uc","groove_connect","groovepay","integrapay_australia_new_zeland","ironwood","konnectable","kotapay","maverick","mes_trident","mgi_apm","moneris","mx_merchant","netevia","nmi","pathly","paynetworx","paysafe_continuity","paysafe_direct","rapid_iq","reliafund","sage_ach","secure_payment_systems","stax","stripe_connect","tabapay","tsys_emv","tsys_sierra","vantiv","vantiv_now_worldpay_core_terminal_capture","vantiv_now_worldpay_ecommerce_terminal_capture_litle_co","versitix","world_pay","world_pay_host_capture_emv"]},"visa":{"type":"object","description":"The Visa settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The Visa MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The Visa BIN for the specific gateway.","type":"string","examples":["414572"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"mastercard":{"type":"object","description":"The MasterCard settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The MasterCard MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The MasterCard BIN for the specific gateway.","type":"string","examples":["524786"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"discover":{"type":"object","description":"The Discover settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The Discover MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The Discover BIN for the specific gateway.","type":"string","examples":["620207"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"amex":{"type":"object","description":"The American Express settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The American Express MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The American Express BIN for the specific gateway.","type":"string","examples":["10000000002"],"enum":["10000000002","10000000006","10000000232","10000000319","10000000005"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}}}},"token_settings":{"type":"object","additionalProperties":false,"description":"The user gateway token settings for the user gateway. Gateway tokenization allows for the storage and usage of payment information with the specific payment gateway, which can be used for payments for the saved card using the token for initial sales, subscription renewals, trial expirations and salvage transactions. Both the gateway token and network token are created at the gateway level upon the creation of a saved card in RevCent for either setting that is enabled. Network tokens, if created at the gateway level are preferred over gateway tokens when processing payments for a customer and same saved card. Both the gateway token and network token are disabled by default, and must be enabled to be used for payments. Network tokens require configuration at the gateway level by the user, and are only supported by certain gateways. Gateway tokens are supported by all gateways that support tokenization. Also, network tokens are only used when the gateway token is enabled, but the gateway token can be used without the network token being enabled.","properties":{"network_token_enabled":{"description":"Whether to store and use a saved card network token at the gateway level, i.e. a gateway specific network token, instead of the raw card PAN that RevCent stores on the users behalf. Only certain site gateways support network tokens, and network tokens require configuration by the user at the merchant gateway. Default is false. Note: Network tokens are take precedence over gateway tokens when present and available when processing payments. Gateway tokens must be enabled for network tokens to be used, but network tokens can be disabled while gateway tokens are still enabled.","type":"boolean","examples":[false]},"gateway_token_enabled":{"description":"Whether to store and use a saved card token at the gateway level, i.e. a gateway specific card token, instead of the raw card PAN that RevCent stores on the users behalf. Default is false.","type":"boolean","examples":[false]}}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name","site_gateway_id"],"allOf":[{"not":{"required":["fields","secure_form_id"]}},{"anyOf":[{"required":["fields"]},{"required":["secure_form_id"]}]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"user_gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_gateways/{user_gateway_id}":{"get":{"summary":"Get A User Gateway","description":"Retrieve a specific account gateway configuration, including provider, gateway-group, routing and token settings. No query parameters are accepted.","operationId":"GetUserGateway","x-api-permission-description":"Allows the retrieval of user gateways.","x-api-permission":"user_gateway:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserGateway.md","tags":["Gateways"],"parameters":[{"in":"path","name":"user_gateway_id","description":"20 character RevCent ID of the account gateway to retrieve, available from GetUserGateways.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the account gateway.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested account gateway configuration.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the account gateway configuration was retrieved successfully.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Available creation time in Unix seconds; omitted when unusable.","type":"integer","format":"unix-time","examples":[1675367500]},"custom_descriptor":{"type":"object","additionalProperties":false,"description":"Optional configured descriptor for gateways that support it. Returned when a descriptor name is available, including empty text; other available descriptor fields are independent. Availability does not confirm provider acceptance.","properties":{"enabled":{"description":"Whether the custom descriptor is enabled.","type":"boolean","examples":[true]},"name":{"description":"The custom descriptor name.","type":"string","examples":["Acme Org"]},"email":{"description":"The custom descriptor email.","type":"string","examples":["email@acme.org"]},"url":{"description":"The custom descriptor url.","type":"string","examples":["https://www.acme.org"]},"phone":{"description":"The custom descriptor phone.","type":"string","examples":["888-867-5399"]},"address":{"description":"The custom descriptor address.","type":"string","examples":["1600 Pennsylvania Ave"]},"city":{"description":"The custom descriptor city.","type":"string","examples":["Washington"]},"state":{"description":"The custom descriptor state.","type":"string","examples":["DC"]},"postal_code":{"description":"The custom descriptor postal code.","type":"string","examples":["20500"]}}},"description":{"description":"Available configuration description, including empty or historical text; omitted when unavailable.","type":"string","examples":["Authorize.net gateway MID 1234."]},"discount_rate":{"description":"Configured discount rate as a percentage; 2.5 means 2.5%. This is a configuration value, not the amount charged for a transaction.","type":"number","format":"float","examples":[2.52]},"enabled":{"description":"Whether this account gateway is enabled, when available.","type":"boolean","examples":[true]},"id":{"description":"The configured User Gateway's 20 character RevCent ID, usable with GetUserGateway.","type":"string","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"gateway_group":{"description":"Available gateway-group summaries in first-occurrence order, deduplicated by identity. Unavailable or unusable summaries are omitted. More than 1,000 configured group references cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"20 character RevCent ID of the gateway group.","type":"string","minLength":20,"maxLength":20,"examples":["GOGaPRql9oUAAkrm5Ll9"]},"name":{"description":"Available group label, including empty or historical text.","type":"string","examples":["My Gateway Group"]}}},"maxItems":1000,"uniqueItems":true},"global_cascade_rules":{"type":"object","additionalProperties":false,"description":"Configured time and revenue rules used to determine gateway availability for payment routing.","properties":{"enabled":{"description":"Whether global rules are enabled.","type":"boolean","examples":[true]},"revenue_rules":{"type":"object","additionalProperties":false,"description":"Configured revenue comparisons. See <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#revenue-rules\" target=\"_blank\">revenue-rule guidance</a>.","properties":{"enabled":{"description":"Whether revenue rules are enabled.","type":"boolean","examples":[true]},"options":{"description":"Available rules in configured order, up to 1,000 entries. Unusable entries or fields may be omitted. More than 1,000 configured entries cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean","examples":[true]},"bound":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["min","max"],"examples":["min","max"]},"rule_value":{"description":"Configured threshold for the selected source, calculation and bound, retaining available finite precision.","type":"number","format":"float","examples":[5]},"source":{"description":"The source, in combination with the source value and calculation, is what is used to form the calculation value.","type":"string","enum":["gateway","global","step"],"examples":["gateway","global","step"]},"source_value":{"description":"The source value is specific to the source selected.","type":"string","enum":["captured","declined","chargeback","total","amount"],"examples":["captured","declined","chargeback","total","amount"]},"calculation":{"description":"The calculation to perform based on the source value.","type":"string","enum":["count","percent","sum"],"examples":["count","percent","sum"]},"time_value":{"description":"Configured lookback-window value, returned rounded to a whole number, together with time_unit.","type":"integer","examples":[1]},"time_unit":{"description":"Unit used with time_value for the configured lookback window.","type":"string","enum":["hour","day","week","month"],"examples":["hour","day","week","month"]},"id":{"type":"string","minLength":1,"description":"Optional nonempty identifier of this revenue rule, omitted when unavailable.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"maxItems":1000}}},"time_rules":{"type":"object","additionalProperties":false,"description":"Configured UTC time rules. See <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#time-rules\" target=\"_blank\">time-rule guidance</a>.","properties":{"enabled":{"description":"Whether time rules are enabled.","type":"boolean","examples":[true]},"options":{"description":"Available rules in configured order, up to 1,000 entries. Unusable entries or fields may be omitted. More than 1,000 configured entries cause a retrieval error rather than truncation.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual time rule is enabled.","type":"boolean","examples":[true]},"start_time":{"description":"Configured start time in UTC. Current configuration uses hh:mmam or hh:mmpm (for example 09:00am); historical hh:mm:am/pm and other saved strings are preserved without a format guarantee.","type":"string","examples":["12:00am"]},"end_time":{"description":"Configured end time in UTC. Current configuration uses hh:mmam or hh:mmpm (for example 09:00am); historical hh:mm:am/pm and other saved strings are preserved without a format guarantee.","type":"string","examples":["11:59pm"]},"name":{"description":"The specific weekday that the time rule applies.","type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"examples":["sunday"]},"option":{"description":"Configured allow or deny choice for the selected weekday/time range.","type":"string","enum":["allow","deny"],"examples":["deny"]}}},"maxItems":1000}}}}},"merchant_account_id":{"description":"Configured merchant account identifier (MID), or empty text when unavailable.","type":"string","examples":["845678"]},"name":{"description":"Available configuration name, including empty or historical text; omitted when unavailable.","type":"string","examples":["Authorize"]},"site_gateway":{"type":"object","additionalProperties":false,"description":"The gateway provider definition associated with this account gateway.","properties":{"id":{"description":"20 character RevCent ID of the gateway provider definition.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go","Zk2rZW8CkRZRd9wV5g7o"]},"name":{"description":"Provider label, including available empty or historical text.","type":"string","examples":["Authorize.net"]}}},"transaction_fail_fee":{"description":"Configured fixed fee amount for failed or declined transactions, when available. This response does not identify its currency or establish the amount actually charged.","type":"number","format":"float","examples":[0.25]},"transaction_success_fee":{"description":"Configured fixed fee amount for approved transactions, when available. This response does not identify its currency or establish the amount actually charged.","type":"number","format":"float","examples":[0.55]},"smart_bin":{"type":"object","additionalProperties":false,"description":"Retrieved SmartBin configuration. Historical and empty values are preserved and do not establish current processor, acquirer or card-brand support. See the <a href=\"https://kb.revcent.com/en/payments/credit-card/smartbin\" target=\"_blank\">SmartBin knowledge base</a>.","properties":{"mcc":{"description":"Configured merchant category code text; may be empty or historical.","type":"string","examples":["5812"]},"processor":{"description":"Configured processor label; may be empty or historical.","type":"string","examples":["tsys_sierra"]},"visa":{"type":"object","description":"Retrieved Visa SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Visa merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Visa acquiring BIN text.","type":"string","examples":["414572"]},"acquirer":{"type":"string","description":"Configured Visa acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"mastercard":{"type":"object","description":"Retrieved Mastercard SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Mastercard merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Mastercard acquiring BIN text.","type":"string","examples":["524786"]},"acquirer":{"type":"string","description":"Configured Mastercard acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"discover":{"type":"object","description":"Retrieved Discover SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured Discover merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured Discover acquiring BIN text.","type":"string","examples":["620207"]},"acquirer":{"type":"string","description":"Configured Discover acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}},"amex":{"type":"object","description":"Retrieved American Express SmartBin settings. Missing text is represented by an empty string.","additionalProperties":false,"properties":{"mid":{"description":"Configured American Express merchant account identifier.","type":"string","examples":["1234567"]},"bin":{"description":"Configured American Express acquiring BIN text.","type":"string","examples":["10000000002"]},"acquirer":{"type":"string","description":"Configured American Express acquirer label; historical values do not establish current support.","examples":["acquirer_first_national"]}}}}},"token_settings":{"description":"Gateway token settings for saved payment methods. Use requires support from the gateway and the appropriate merchant configuration. Network tokens additionally require gateway tokens to be enabled. These flags do not confirm that a usable token exists.","properties":{"network_token_enabled":{"description":"Whether network token use is enabled along with gateway tokens. Requires provider support and merchant configuration; returned false when gateway tokens are disabled.","type":"boolean","examples":[false]},"gateway_token_enabled":{"description":"Whether gateway token use is enabled for saved payment methods; false when not configured. Requires gateway tokenization support.","type":"boolean","examples":[false]}},"type":"object","additionalProperties":false},"updated_date_unix":{"description":"Available configuration update time in Unix seconds; omitted when unusable.","type":"integer","format":"unix-time","examples":[1675367500]},"metadata":{"type":"array","maxItems":50,"description":"Up to the first 50 valid metadata name/value pairs, preserving text, order and duplicates. May be empty and is not guaranteed complete.","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"The metadata name.","examples":["Example"]},"value":{"type":"string","minLength":1,"maxLength":255,"description":"The metadata value.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A User Gateway","description":"Update an existing payment gateway. Only supplied fields are updated. The API key determines the live or test environment.","operationId":"EditUserGateway","x-api-permission-description":"Allows the editing of user gateways.","x-api-permission":"user_gateway:edit","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway","x-kb-name":"Gateways","x-md-link":"markdown/mcp/operation/EditUserGateway.md","tags":["Gateways"],"parameters":[{"in":"path","name":"user_gateway_id","description":"The user gateway ID.","required":true,"schema":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"custom_descriptor":{"type":"object","additionalProperties":false,"description":"The custom descriptor for the user gateway. Will be provided to supported gateways as well as provided as shortcodes in email templates.","properties":{"enabled":{"description":"Whether the custom descriptor is enabled.","type":"boolean"},"name":{"description":"The custom descriptor name.","type":"string","examples":["Example"]},"email":{"description":"The custom descriptor email.","type":"string","examples":["alex@example.com"]},"url":{"description":"The custom descriptor url.","type":"string","examples":["https://example.com"]},"phone":{"description":"The custom descriptor phone.","type":"string","examples":["+12025550123"]},"address":{"description":"The custom descriptor address.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"city":{"description":"The custom descriptor city.","type":"string","examples":["Boston"]},"state":{"description":"The custom descriptor state.","type":"string","examples":["MA"]},"postal_code":{"description":"The custom descriptor postal code.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"description":{"description":"The user gateway description. Omit to keep the current description. Send an empty string to clear it.","type":"string","examples":["Example description"]},"discount_rate":{"description":"The discount rate specific to the MID.","type":"number","format":"float"},"enabled":{"description":"Whether the user gateway is currently enabled.","type":"boolean"},"global_cascade_rules":{"type":"object","additionalProperties":false,"description":"Global cascade rules, which determine whether or not the gateway should be used for a specific transaction when choosing a gateway. <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#global-cascade-rules-1\" target=\"_blank\">Read More</a>.","properties":{"enabled":{"description":"Whether global cascade rules are enabled.","type":"boolean"},"revenue_rules":{"type":"object","additionalProperties":false,"description":"Revenue rules are specific to the gateway, and allow or disallow the use of the gateway based on payment volume, occurrences and more. You can add multiple revenue rules to a gateway. <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#revenue-rules\" target=\"_blank\">Read More</a>","properties":{"enabled":{"description":"Whether revenue rules are enabled.","type":"boolean"},"options":{"description":"An array of individual revenue rules.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual revenue rule is enabled.","type":"boolean"},"bound":{"description":"The rule bounds to declare if a rule passes or fails.","type":"string","enum":["min","max"],"examples":["min"]},"rule_value":{"description":"The rule value is compared with the calculation value and bound.","type":"number","format":"float"},"source":{"description":"The source, in combination with the source value and calculation, is what is used to form the calculation value.","type":"string","enum":["gateway","global","step"],"examples":["gateway"]},"source_value":{"description":"The source value is specific to the source selected.","type":"string","enum":["captured","declined","chargeback","total","amount"],"examples":["captured"]},"calculation":{"description":"The calculation to perform based on the source value.","type":"string","enum":["count","percent","sum"],"examples":["count"]},"time_value":{"description":"The total amount of time the rule applies in a past time range. Used in conjunction with the time unit.","type":"integer","minimum":1,"maximum":10000,"examples":[1]},"time_unit":{"description":"The time unit. Used in conjunction with the time value.","type":"string","enum":["hour","day","week","month"],"examples":["hour"]}}},"maxItems":100}}},"time_rules":{"type":"object","additionalProperties":false,"description":"Time rules are specific to the gateway, and allow or disallow the use of the gateway based on time settings. All time rules are GMT (UTC+0). <a href=\"https://kb.revcent.com/en/payments/credit-card/gateway#time-rules\" target=\"_blank\">Read More</a>","properties":{"enabled":{"description":"Whether time rules are enabled.","type":"boolean"},"options":{"description":"An array of individual time rules.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"enabled":{"description":"Whether the individual time rule is enabled.","type":"boolean"},"start_time":{"description":"The start time, formatted as hh:mm:a","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"end_time":{"description":"The end time, formatted as hh:mm:a","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The specific weekday that the time rule applies.","type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"examples":["monday"]},"option":{"description":"Whether to allow or deny the gateway from processing the step transaction based on the current GMT time and the rule day and time ranges.","type":"string","enum":["allow","deny"],"examples":["allow"]}}},"maxItems":100}}}}},"merchant_account_id":{"description":"The merchant account id or MID specific to the user gateway.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The user gateway name. Must be unique from other user gateway names.","type":"string","examples":["Example"]},"transaction_fail_fee":{"description":"The flat fee for failed or declined transactions.","type":"number","format":"float"},"transaction_success_fee":{"description":"The flat fee for approved transactions.","type":"number","format":"float"},"smart_bin":{"type":"object","additionalProperties":false,"description":"If SmartBin is enabled for the RevCent account, the SmartBin settings for the user gateway. When enabled, SmartBin gives you the ability to have payments automatically routed to the gateway that has the highest statistical likelihood of success.<br><br>These are advanced settings and should only be provided if using SmartBin. If using SmartBin and creating a new gateway via CreateUserGateway, attempt to complete as many fields as possible to allow the SmartBin algorithm to have the most information available when determining the best gateway. If editing a gateways' smart_bin object via the EditUserGateway operation, the entire smart_bin object must be present, i.e. the smart_bin object in the request will overwrite existing if provided, so all properties should be retrieved first before editing.<br><br>For more information on SmartBin, please visit our <a href\"https://kb.revcent.com/en/payments/credit-card/smartbin\" target=\"_blank\">knowledge base</a>.","properties":{"mcc":{"description":"The MCC for the specific gateway.","type":"string","examples":["5812"]},"processor":{"description":"The processor for the specific gateway.","type":"string","examples":["tsys_sierra"],"enum":["ach_com","acheck","achnow","aci_pay_on","axe_pay_plus","bluesnap","boltpay","card_pmt","cash","cashflows","chase_paymentech_netconnect","chase_paymentech_salem","chase_paymentech_tampa","checkout_com","consumer_choice","credorax_v_2","elavon","elavon_emv","epx","evertec","evo","finest_finance_aci","first_data_canada","first_data_nashville","first_data_north_v_2","first_data_omaha","first_data_rapid_connect_cardnet_north_emv","first_data_rapid_connect_nashville_emv","fiserv_pepper_pay_pinless_debit","fiserv_rapid_hc_host_capture_surcharge_debit_repayment","fiserv_rapid_otc_online_terminal_capture_level_3","flex","gateway_duel_pricing","global_payments_canada","global_payments_east_emv","global_payments_uc","groove_connect","groovepay","integrapay_australia_new_zeland","ironwood","konnectable","kotapay","maverick","mes_trident","mgi_apm","moneris","mx_merchant","netevia","nmi","pathly","paynetworx","paysafe_continuity","paysafe_direct","rapid_iq","reliafund","sage_ach","secure_payment_systems","stax","stripe_connect","tabapay","tsys_emv","tsys_sierra","vantiv","vantiv_now_worldpay_core_terminal_capture","vantiv_now_worldpay_ecommerce_terminal_capture_litle_co","versitix","world_pay","world_pay_host_capture_emv"]},"visa":{"type":"object","description":"The Visa settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The Visa MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The Visa BIN for the specific gateway.","type":"string","examples":["414572"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"mastercard":{"type":"object","description":"The MasterCard settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The MasterCard MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The MasterCard BIN for the specific gateway.","type":"string","examples":["524786"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"discover":{"type":"object","description":"The Discover settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The Discover MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The Discover BIN for the specific gateway.","type":"string","examples":["620207"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}},"amex":{"type":"object","description":"The American Express settings for the specific gateway.","additionalProperties":false,"properties":{"mid":{"description":"The American Express MID for the specific gateway.","type":"string","examples":["1234567"]},"bin":{"description":"The American Express BIN for the specific gateway.","type":"string","examples":["10000000002"],"enum":["10000000002","10000000006","10000000232","10000000319","10000000005"]},"acquirer":{"type":"string","description":"The acquirer for the specific cart type.","examples":["acquirer_first_national"],"enum":["acquirer_first_national","aliant_payments","avidia_bank","axiom","banco_nacional_de_panama","banistmo_s_a","bank_of_china_unlimited","bankcard_usa","banorte","bbva","be_2_bill","bluesnap","bmo_harris","braintree","cardconnect","cashflows","cbcal","central_bank","central_bank_of_st_louis","checkout_com","checkout_limited","chesapeake","citizens_bank","cliq","commercial_bank_of_ca","connexpay","credicorp_bank","deutsche","ecp","elavon","electronic_merchant_services","emerchantpay","eq","esquire","evolve_bank_trust","fifth_third_bank","finaro","first_data_europe_ltd","first_national_bank_of_omaha","fiserv","fresno_first_bank","global_payments","harris_national_bank","humbolt","i_3","imperial_bank","intrix","jp_morgan_chase","maverick","merchant_e","merrick_bank","metabank","metropolitan_commercial_bank","mission_valley","nab","north_american_banking_company","optimal_acquiring","other","payarc","payon","payone","paysafe","paystarx","payvision","peoples_trust_company","pnc","priority_payments","rapyd","reitumu","secure_trading","select_bank","signapay","signature_bank","ssb","stripe_payfac","synovus_bank","transact_europe_ead","transact_pro","trust_payments_ltd","trustpay","tsys","valitor","vantiv","vermont_state_bank","wells_fargo","westamerica","woodforrest_national","worldline","worldpay","worldpay_pty"]}}}}},"token_settings":{"type":"object","additionalProperties":false,"description":"The user gateway token settings for the user gateway. Gateway tokenization allows for the storage and usage of payment information with the specific payment gateway, which can be used for payments for the saved card using the token for initial sales, subscription renewals, trial expirations and salvage transactions. Both the gateway token and network token are created at the gateway level upon the creation of a saved card in RevCent for either setting that is enabled. Network tokens, if created at the gateway level are preferred over gateway tokens when processing payments for a customer and same saved card. Both the gateway token and network token are disabled by default, and must be enabled to be used for payments. Network tokens require configuration at the gateway level by the user, and are only supported by certain gateways. Gateway tokens are supported by all gateways that support tokenization. Also, network tokens are only used when the gateway token is enabled, but the gateway token can be used without the network token being enabled.","properties":{"network_token_enabled":{"description":"Whether to store and use a saved card network token at the gateway level, i.e. a gateway specific network token, instead of the raw card PAN that RevCent stores on the users behalf. Only certain site gateways support network tokens, and network tokens require configuration by the user at the merchant gateway. Default is false. Note: Network tokens are take precedence over gateway tokens when present and available when processing payments. Gateway tokens must be enabled for network tokens to be used, but network tokens can be disabled while gateway tokens are still enabled.","type":"boolean","examples":[false]},"gateway_token_enabled":{"description":"Whether to store and use a saved card token at the gateway level, i.e. a gateway specific card token, instead of the raw card PAN that RevCent stores on the users behalf. Default is false.","type":"boolean","examples":[false]}}},"site_gateway_id":{"type":"string","description":"A 20 character site gateway ID which is associated with the user gateway.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials. For Checkout.com, field_3 must contain the complete cli_ client_id for the API key’s live or test environment. Use the selected gateway’s credential definitions for any wallet requirements.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"description":"The fields required for the user gateway based on the id of the site gateway fields. For Checkout.com, field_3 must contain the complete cli_ client_id for the API key’s live or test environment. Use the selected gateway’s credential definitions for any wallet requirements.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The id for the individual field according to the site gateway fields required.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"description":"The value for the individual field according to the site gateway fields required.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]},"minItems":1,"maxItems":50},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","allOf":[{"not":{"required":["fields","secure_form_id"]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"user_gateway_id":{"type":"string","description":"A 20 character user gateway ID.","minLength":20,"maxLength":20,"examples":["LYE26MW8Rlh5VbJmlp2l","bJmlp2LYE8Rlh5Vl26MW"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_shops":{"get":{"summary":"Get User Shops","description":"Retrieve saved third-party shop connections and their payment and shipping mappings. Use GetUserShop to retrieve remote shop data.","operationId":"GetUserShops","x-api-permission-description":"Allows the retrieval of third party shops.","x-api-permission":"user_shop:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserShops.md","tags":["Shops"],"parameters":[{"description":"Required maximum number of connections per page, from 1 to 25. No default; supply this parameter once.","in":"query","name":"limit","required":true,"schema":{"type":"integer","format":"int32","minimum":1,"maximum":25,"examples":[25]},"style":"form"},{"description":"Required page number from 0 to 20. Zero selects page one; supply this parameter once.","in":"query","name":"page","required":true,"schema":{"type":"integer","format":"int32","examples":[1],"minimum":0,"maximum":20},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Page of saved third-party shop connections.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the shop connections were retrieved successfully.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of connections returned on this page. Unavailable connections can be omitted, so a short or empty result does not necessarily indicate the final page.","type":"integer","minimum":0,"maximum":25,"examples":[10]},"current_page":{"description":"Selected page number; a submitted page of zero returns page one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"created_date_unix":{"description":"Connection creation time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"campaign":{"type":"object","additionalProperties":false,"description":"Associated campaign summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The campaign's 20 character RevCent ID for GetCampaign.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"Name of the associated campaign; may be empty.","type":"string","examples":["My Shop Campaign"]}}},"payment_profile":{"type":"object","additionalProperties":false,"description":"Associated payment profile summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The payment profile's 20 character RevCent ID for GetPaymentProfile.","minLength":20,"maxLength":20,"examples":["o1zXNj9RqztqbLKWGk4L"]},"name":{"description":"Name of the associated payment profile; may be empty.","type":"string","examples":["My Shop Payment Profile"]}}},"api_account":{"type":"object","additionalProperties":false,"description":"Associated API account summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The API account's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"Name of the associated API account; may be empty.","type":"string","examples":["API Account for My Shop"]}}},"webhook":{"type":"object","additionalProperties":false,"description":"Associated webhook summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The webhook's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["o4lGENM8WPCp9JXma7va"]},"name":{"description":"Name of the associated webhook; may be empty.","type":"string","examples":["Webhook for My Shop"]}}},"description":{"description":"Description of the account shop connection; may be empty or omitted when unavailable.","type":"string","examples":["My awesome WooCommerce store."]},"enabled":{"description":"Whether the connection is configured as enabled; omitted when unavailable.","type":"boolean","examples":[true]},"id":{"description":"The account shop connection's 20 character RevCent ID for GetUserShop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the account shop connection; may be empty or omitted when unavailable.","type":"string","examples":["My WooCommerce Shop"]},"shop_version":{"description":"Configured shop version, or an empty string when unavailable.","type":"string","examples":["3"]},"live_mode":{"description":"Whether the linked API account is configured for live mode. False when that configuration is unavailable; independent of the API credentials used to retrieve this list.","type":"boolean","examples":[true]},"url":{"description":"Configured shop URL text. May be null or empty; omitted when unavailable.","type":["string","null"],"examples":["myshop.com"]},"fields_saved":{"description":"Configuration keys associated with saved credentials; credential values are not returned. Inclusion does not confirm that each credential is currently valid. Order and duplicates are preserved. More than 1,000 configuration entries causes a retrieval error.","type":"array","items":{"type":"string","description":"Exact provider configuration key, not a RevCent resource ID.","examples":["consumer_key","consumer_secret"]},"maxItems":1000},"site_shop":{"type":"object","additionalProperties":false,"description":"Shop provider definition associated with this account connection.","properties":{"id":{"description":"The provider definition's 20 character RevCent ID for GetSiteShop.","type":"string","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"Provider name; may be empty.","type":"string","examples":["WooCommerce"]},"description":{"description":"Available provider configuration help text.","type":"string","examples":["The WooCommerce shopping cart software."]},"version":{"type":"string","description":"Configured version of this shop connection, omitted when unavailable.","examples":["EC_v1"]},"fields":{"type":"array","maxItems":1000,"description":"Provider configuration field definitions, without credential values. Order and duplicates are preserved. More than 1,000 configuration entries causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Provider configuration key, not a RevCent resource ID. May be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":{"type":"string","description":"Display label or help text for this configuration field; may be empty.","examples":["Example description"]},"required":{"type":"boolean","description":"Provider-supplied requirement flag, when available. True, false and omission are distinct. Refer to CreateUserShop or EditUserShop for the applicable submission requirements."}}}}}},"offline_payment_methods":{"type":"array","description":"Configured mappings from shop payment methods to account integrations, in configured order; duplicates are preserved. More than 1,000 mappings causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact payment-method identifier from the connected shop, not a RevCent resource ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"Shop payment-method name, when available; may be empty.","type":"string","examples":["Example"]},"method_title":{"description":"Shop payment-method display title, when available; may be empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"method_description":{"description":"Shop payment-method description, when available; may be empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Account integration associated with this mapping, or null when unavailable.","properties":{"id":{"type":"string","description":"The account integration's 20 character RevCent ID for GetUserThirdPartyIntegration.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The third party integration name.","type":"string","examples":["Example"]},"description":{"description":"The third party integration description.","type":"string","examples":["Example description"]},"enabled":{"description":"Whether the associated integration is configured as enabled, when available.","type":"boolean"},"third_party":{"type":["object","null"],"additionalProperties":false,"description":"Available integration provider definition, or null when unavailable.","properties":{"id":{"type":"string","description":"The provider definition's 20 character RevCent ID for GetSiteThirdPartyIntegration.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The third party name.","type":"string","examples":["Example"]},"description":{"description":"The third party description.","type":"string","examples":["Example description"]},"integration_type":{"description":"The third party integration type.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}}}},"maxItems":1000},"shipping_methods":{"type":"array","description":"Configured mappings from shop shipping methods to RevCent shipping providers and package options, in configured order; duplicates are preserved. More than 1,000 mappings causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"third_party_shipping_id":{"description":"Exact shipping-method identifier from the connected shop, not a RevCent resource ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shipping_name":{"description":"Shop shipping-method label, when available; may be empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider":{"description":"Available shipping-provider summary, or an empty object when unavailable. See GetSiteShippingProviders.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The provider's 20 character RevCent ID for GetSiteShippingProvider.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The shipping provider name.","type":"string","examples":["Example"]},"name_lower":{"description":"Provider label supplied separately from the display name; it may differ from the lowercase display name or be empty.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"provider_method":{"description":"Available package-option summary associated with the selected provider, or an empty object when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The package option's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"display_name":{"description":"The shipping method display name.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"identifier":{"description":"Separate provider package identifier, not a RevCent resource ID.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}}}},"maxItems":1000},"updated_date_unix":{"description":"Connection configuration update time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":25,"description":"Up to 25 connections, ordered newest first with stable ordering for equal creation times. Unavailable connections are omitted without replacements. Beyond-end pages return an empty array while retaining matching totals."},"total_count":{"description":"Number of matching connections, including connections unavailable in the returned results.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Total matching pages, calculated by rounding total_count divided by limit up to the next integer. Zero when no connections match. May exceed 20, although only pages 1–20 can be retrieved.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A User Shop","description":"Create a user shop in RevCent which will link and integrate existing stores such as WooCommerce to RevCent.","operationId":"CreateUserShop","x-api-permission-description":"Allows the creation of third party shops.","x-api-permission":"user_shop:create","x-ai-options":["mcp"],"x-kb-link":"https://kb.revcent.com/en/integrations/third-party-shop/woocommerce-installation","x-kb-name":"WooCommerce Installation Guide","x-md-link":"markdown/mcp/operation/CreateUserShop.md","x-additional-info":" A site shop is required, along with the correct required fields when creating a user shop. You must have previously installed the appropriate RevCent plugin before creating a user shop as well as acquired the necessary credentials. For example, if the site shop is WooCommerce, they must have already installed the RevCent Payment plugin in WordPress and have created an API key/secret.<br>After creating the user shop, run the ValidateUserShop operation to ensure all remote settings are configured correctly, and if not configured correctly you can run the FixUserShop operation to have Revcent automatically configure settings correctly.<br>Once you have validated the user shop using the ValidateUserShop operation and potentially fixed the user shop using the FixUserShop operation, it is important to use the GetUserShop operation with remote_data query string parameters of 'shipping_methods' and 'offline_payment_methods', then edit the user shop with appropriately mapped values for the items in both methods.<br>Once you have set the shipping_methods and offline_payment_methods, use the GetUserShop operation to retrieve the remote_data products, which can then be used to create each product in RevCent associated with the user shop with the RevCent third_party_shop ID and the shops' product ID.","tags":["Shops"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The user shop name. Must be unique from other user shop names.","type":"string","minLength":1,"examples":["Example"]},"description":{"description":"The third-party shop description. On edit, omission preserves it and an empty value clears it.","type":"string","examples":["Example description"]},"url":{"type":"string","description":"The shop URL.","examples":["https://example.com"]},"payment_profile_id":{"type":"string","description":"A 20 character payment profile ID to associate with the user shop. This determines the payment profile that will process credit card transactions.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_id":{"type":"string","description":"A 20 character campaign ID to associate with the user shop.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"site_shop_id":{"type":"string","description":"A 20 character site shop ID which is associated with the user shop.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"site_shop_version":{"type":"string","description":"The platform API version. Creation defaults to 3 for WooCommerce; editing preserves the saved version when omitted.","default":"3"},"fields":{"description":"Credential entries for the selected site shop. Each entry must contain a nonempty id and value. The API checks the entries against the selected shop configuration: every configured credential ID must appear exactly once, and duplicate or unknown IDs are rejected. An empty array is rejected when the selected configuration requires credentials. These configuration-dependent checks are performed by the API and are not expressed by this array schema. Alternatively, supply a completed secure_form_id, whose credentials take precedence. To replace credentials on edit, also send site_shop_id.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The id for the individual field according to the site shop fields required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"description":"The value for the individual field according to the site shop fields required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]}},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","description":"Whether the third-party shop is enabled. Defaults to true on creation."},"live_mode":{"type":"boolean","description":"Whether the linked shop API account processes live operations. Defaults to true on creation. When editing, include another editable shop property with a mode change."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","required":["name","url","campaign_id","payment_profile_id","site_shop_id"],"anyOf":[{"required":["fields"]},{"required":["secure_form_id"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"The third-party shop after creation or editing. Credentials are not returned. A successful save does not guarantee that remote installation checks or repairs succeeded. Use ValidateUserShop to check the installation.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]},"code":{"type":"integer","const":1,"examples":[1]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","examples":["Example"]},"description":{"type":"string","examples":["Example description"]},"url":{"type":"string","examples":["https://example.com"]},"enabled":{"type":"boolean"},"is_hosted":{"type":"boolean"},"live_mode":{"type":"boolean"},"shop_version":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"updated_date":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"fields_saved":{"type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"api_account":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"campaign":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"webhook":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"payment_profile":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"site_shop":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]},"description":{"type":"string","examples":["Example description"]},"version":{"type":"string","examples":["EC_v1"]},"fields":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":{"type":"string","examples":["Example description"]},"required":{"type":"boolean"}}}}}}}}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_shops/{user_shop_id}":{"get":{"summary":"Get A User Shop","description":"Retrieve one shop connection and its saved payment and shipping mappings. Optionally request remote product or method summaries for WooCommerce connections.","operationId":"GetUserShop","x-api-permission-description":"Allows the retrieval of third party shops.","x-api-permission":"user_shop:retrieve","x-ai-options":["ai_assistant","mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserShop.md","tags":["Shops"],"parameters":[{"in":"path","name":"user_shop_id","description":"20 character RevCent ID of the shop connection to retrieve, available from GetUserShops.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the account shop connection.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}},{"description":"Optional WooCommerce-only expansions: products, shipping_methods or offline_payment_methods. Repeat this query parameter to request multiple types. Products are available product/variation summaries; shipping and payment methods are remote options distinct from saved mappings. Results may be incomplete; use SyncProducts for product synchronization. The compatibility alias remote_data[] is accepted. Nonempty remote_data values take precedence over that alias; duplicates are combined and unsupported values are ignored. Other query parameters are rejected.","name":"remote_data","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","examples":["products","shipping_methods","offline_payment_methods"],"enum":["products","shipping_methods","offline_payment_methods"]}},"style":"form","explode":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested shop connection, with optional remote summaries.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Request initiation time in Unix seconds.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the shop connection was retrieved successfully. Requested remote summaries may still be unavailable.","type":"integer","enum":[1],"examples":[1]},"created_date_unix":{"description":"Connection creation time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"campaign":{"type":"object","additionalProperties":false,"description":"Associated campaign summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The campaign's 20 character RevCent ID for GetCampaign.","minLength":20,"maxLength":20,"examples":["mJ1zZoOobEuP8pnWKXd1"]},"name":{"description":"Name of the associated campaign; may be empty.","type":"string","examples":["My Shop Campaign"]}}},"payment_profile":{"type":"object","additionalProperties":false,"description":"Associated payment profile summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The payment profile's 20 character RevCent ID for GetPaymentProfile.","minLength":20,"maxLength":20,"examples":["o1zXNj9RqztqbLKWGk4L"]},"name":{"description":"Name of the associated payment profile; may be empty.","type":"string","examples":["My Shop Payment Profile"]}}},"api_account":{"type":"object","additionalProperties":false,"description":"Associated API account summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The API account's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["rmNgKq408RT0q5gNpdpV"]},"name":{"description":"Name of the associated API account; may be empty.","type":"string","examples":["API Account for My Shop"]}}},"webhook":{"type":"object","additionalProperties":false,"description":"Associated webhook summary, or an empty object when unavailable.","properties":{"id":{"type":"string","description":"The webhook's 20 character RevCent ID.","minLength":20,"maxLength":20,"examples":["o4lGENM8WPCp9JXma7va"]},"name":{"description":"Name of the associated webhook; may be empty.","type":"string","examples":["Webhook for My Shop"]}}},"description":{"description":"Description of the account shop connection; may be empty or omitted when unavailable.","type":"string","examples":["My awesome WooCommerce store."]},"enabled":{"description":"Whether the connection is configured as enabled; omitted when unavailable.","type":"boolean","examples":[true]},"id":{"description":"The account shop connection's 20 character RevCent ID for GetUserShop.","type":"string","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"description":"Name of the account shop connection; may be empty or omitted when unavailable.","type":"string","examples":["My WooCommerce Shop"]},"shop_version":{"description":"Configured shop version, or an empty string when unavailable.","type":"string","examples":["3"]},"live_mode":{"description":"Whether the linked API account is configured for live mode. False when that configuration is unavailable; independent of the API credentials used to retrieve this list.","type":"boolean","examples":[true]},"url":{"description":"Configured shop URL text. May be null or empty; omitted when unavailable.","type":["string","null"],"examples":["myshop.com"]},"fields_saved":{"description":"Configuration keys associated with saved credentials; credential values are not returned. Inclusion does not confirm that each credential is currently valid. Order and duplicates are preserved. More than 1,000 configuration entries causes a retrieval error.","type":"array","items":{"type":"string","description":"Exact provider configuration key, not a RevCent resource ID.","examples":["consumer_key","consumer_secret"]},"maxItems":1000},"site_shop":{"type":"object","additionalProperties":false,"description":"Shop provider definition associated with this account connection.","properties":{"id":{"description":"The provider definition's 20 character RevCent ID for GetSiteShop.","type":"string","minLength":20,"maxLength":20,"examples":["ajr7dJkNkoS1gEp5jw1k"]},"name":{"description":"Provider name; may be empty.","type":"string","examples":["WooCommerce"]},"description":{"description":"Available provider configuration help text.","type":"string","examples":["The WooCommerce shopping cart software."]},"version":{"type":"string","description":"Configured version of this shop connection, omitted when unavailable.","examples":["EC_v1"]},"fields":{"type":"array","maxItems":1000,"description":"Provider configuration field definitions, without credential values. Order and duplicates are preserved. More than 1,000 configuration entries causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Provider configuration key, not a RevCent resource ID. May be empty.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":{"type":"string","description":"Display label or help text for this configuration field; may be empty.","examples":["Example description"]},"required":{"type":"boolean","description":"Provider-supplied requirement flag, when available. True, false and omission are distinct. Refer to CreateUserShop or EditUserShop for the applicable submission requirements."}}}}}},"offline_payment_methods":{"type":"array","description":"Configured mappings from shop payment methods to account integrations, in configured order; duplicates are preserved. More than 1,000 mappings causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact payment-method identifier from the connected shop, not a RevCent resource ID.","type":"string","examples":["sezzle"]},"name":{"description":"Shop payment-method name, when available; may be empty.","type":"string","examples":["Sezzle"]},"method_title":{"description":"Shop payment-method display title, when available; may be empty.","type":"string","examples":["Sezzle Pay"]},"method_description":{"description":"Shop payment-method description, when available; may be empty.","type":"string","examples":["Buy now and pay later with Sezzle."]},"third_party_integration":{"type":["object","null"],"additionalProperties":false,"description":"Account integration associated with this mapping, or null when unavailable.","properties":{"id":{"description":"The account integration's 20 character RevCent ID for GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The third party integration name.","type":"string","examples":["My Sezzle"]},"description":{"description":"The third party integration description.","type":"string","examples":["The Sezzle integration for myshop.com."]},"enabled":{"description":"Whether the associated integration is configured as enabled, when available.","type":"boolean","examples":[true]},"third_party":{"type":["object","null"],"additionalProperties":false,"description":"Available integration provider definition, or null when unavailable.","properties":{"id":{"description":"The provider definition's 20 character RevCent ID for GetSiteThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"The third party name.","type":"string","examples":["Sezzle"]},"description":{"description":"The third party description.","type":"string","examples":["Sezzle is a buy now pay later payment method."]},"integration_type":{"description":"The third party integration type.","type":"string","examples":["offline_payment"]}}}}}}},"maxItems":1000},"shipping_methods":{"type":"array","description":"Configured mappings from shop shipping methods to RevCent shipping providers and package options, in configured order; duplicates are preserved. More than 1,000 mappings causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"third_party_shipping_id":{"description":"Exact shipping-method identifier from the connected shop, not a RevCent resource ID.","type":"string","examples":["12"]},"third_party_shipping_name":{"description":"Shop shipping-method label, when available; may be empty.","type":"string","examples":["Flat Rate"]},"provider":{"description":"Available shipping-provider summary, or an empty object when unavailable. See GetSiteShippingProviders.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The provider's 20 character RevCent ID for GetSiteShippingProvider.","type":"string","minLength":20,"maxLength":20,"examples":["d9k2r7ZZW8CkRZRwV5go"]},"name":{"description":"The shipping provider name.","type":"string","examples":["USPS"]},"name_lower":{"description":"Provider label supplied separately from the display name; it may differ from the lowercase display name or be empty.","type":"string","examples":["usps"]}}},"provider_method":{"description":"Available package-option summary associated with the selected provider, or an empty object when unavailable.","type":"object","additionalProperties":false,"properties":{"id":{"description":"The package option's 20 character RevCent ID.","type":"string","minLength":20,"maxLength":20,"examples":["y2qXlnWB2lUddMrna2Z4"]},"display_name":{"description":"The shipping method display name.","type":"string","examples":["First-Class Mail"]},"identifier":{"description":"Separate provider package identifier, not a RevCent resource ID.","type":"string","examples":["first_class_mail"]}}}}},"maxItems":1000},"remote_data":{"type":"object","additionalProperties":false,"description":"Requested remote summaries for WooCommerce connections only. Omitted when remote retrieval is unavailable for the connection. Only requested branches are included; an empty array may indicate no available entries or a failed remote read. Results may be incomplete.","properties":{"products":{"type":"array","description":"Available remote products and variations, covering up to 1,050 parent products and at most 10,000 total entries. This is not a complete inventory or a ready-to-submit CreateProduct/EditProduct request. A failed product-page read returns an empty array; too many expanded products or an oversized response causes a retrieval error. For product synchronization, use SyncProducts.","items":{"type":"object","additionalProperties":false,"properties":{"exists_in_revcent":{"type":"boolean","description":"Whether a matching RevCent product was found for this account and shop. When true, id identifies that product for GetProduct or EditProduct. False alone does not prove that no corresponding product exists."},"id":{"type":"string","description":"20 character RevCent ID of the matching product for GetProduct or EditProduct, or an empty string when no match is available. Distinct from the remote shop’s internal_id.","examples":["Pkq8B2prg4C5VZ9b5LEk"]},"internal_id":{"type":"string","description":"Product identifier used by the remote shop, represented as text; not a RevCent resource ID. Use it as your remote-product reference when linking a product to this shop.","examples":["123"]},"sku":{"type":"string","description":"Available SKU text, including a saved product SKU when the remote value is unavailable; otherwise empty text.","examples":["TSHIRT-001"]},"name":{"type":"string","description":"Available remote product name, or empty text. A variation may use its parent's name when its own name is unavailable.","examples":["T-Shirt"]},"description":{"type":"string","description":"Available short description as plain text, or empty text.","examples":["A nice t-shirt."]},"description_html":{"type":"string","description":"Available product description as HTML text, or empty text.","examples":["<p>The T-Shirt is a great value for those needing a shirt during the hot summer months.</p>"]},"enabled":{"type":["boolean","string"],"description":"Remote purchase flag for a parent product, or an empty string when unavailable. Variation summaries return true even if their remote purchase flag is false or unavailable; this flag does not establish purchasability.","examples":[true]},"url":{"type":"string","description":"The URL to the product in the remote shop.","examples":["https://mystore.com/product/polo/"]},"image_url":{"type":"string","description":"The URL to the product image in the remote shop.","examples":["https://mystore.com/product/polo/image.jpg"]},"price":{"type":"string","description":"Remote price as numeric text, ordinarily with two decimal places; empty when unavailable. A variation with an explicitly empty price uses its parent’s price; a missing price remains empty. Currency is not provided.","examples":["19.99"]},"cost":{"type":["string","number"],"description":"Cost of the matched RevCent product, preserving numeric precision. Zero if the matched product has no available cost; an empty string if no match is available. Currency is not provided.","examples":[9.99]},"is_shippable":{"type":["boolean","string"],"description":"Remote shipping applicability, or an empty string when unavailable. Variations inherit their parent’s shipping applicability.","examples":[true]},"fulfillment_account":{"type":"string","description":"20 character RevCent ID of the associated fulfillment account, or an empty string when unavailable. See GetFulfillmentAccounts; refer to the product mutation operation for input requirements.","examples":["o1zXNj9RqztqbLKWGk4L"]},"third_party_shop":{"type":"string","description":"The requested account shop connection's 20 character RevCent ID.","examples":["o1zXNj9RqztqbLKWGk4L"]},"subscription_profile":{"type":"string","description":"20 character RevCent ID of the associated subscription profile, or an empty string when unavailable. See GetSubscriptionProfiles; refer to the product mutation operation for input requirements.","examples":["o1zXNj9RqztqbLKWGk4L"]},"trial_days":{"type":["string","number"],"description":"Positive trial duration in days from a matched RevCent product, preserving numeric precision; an empty string when unavailable.","examples":[30]},"parent_product":{"type":["string","number"],"description":"Parent product’s identifier in the remote shop, as a number or text; omitted when unavailable. Not a RevCent resource ID or a ready-to-submit RevCent parent-product selector.","examples":["1234"]},"google_product_category":{"type":"string","description":"Available saved Google product-category identifier text, or empty text. See the <a href=\"https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt\" target=\"_blank\">Google product taxonomy</a>.","examples":["212"]},"metadata":{"type":"string","description":"Remote attribute name/value pairs encoded as a JSON array string, preserving text, order and duplicates. An empty string means attributes are unavailable; \"[]\" represents an available empty set. More than 1,000 source attributes causes a retrieval error.","examples":["[]"]},"msrp":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"is_price_sale":{"type":["boolean","string"],"description":"Remote sale-price flag for this product or variation, or an empty string when unavailable. Independent of enabled and in_stock.","examples":[true]},"price_sale":{"type":"string","description":"Remote sale price for this product or variation as numeric text, ordinarily with two decimal places; empty when unavailable. A variation does not inherit its parent’s sale price. Currency is not provided.","examples":["29.99"]},"is_discount":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"discount_rate":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"in_stock":{"type":["boolean","string"],"description":"Remote stock-availability flag for this product or variation, or an empty string when unavailable. Independent of enabled and is_price_sale.","examples":[true]},"stock":{"type":"string","description":"Available stock quantity represented as whole-count numeric text with decimal formatting, or empty text.","examples":["100.00"]},"brand":{"type":"string","description":"The product brand in the remote shop.","examples":["Gildan"]},"material":{"type":"string","description":"Available material text; custom when unavailable.","examples":["Cotton"]},"age_group":{"type":"string","description":"Compatibility label currently returned as adult; it does not verify product suitability.","examples":["adult"]},"condition":{"type":"string","description":"Compatibility label currently returned as new; it does not verify product condition.","examples":["new"]},"rating_value":{"type":"string","description":"Available remote rating value represented as numeric text, ordinarily with two decimal places; otherwise empty text.","examples":["4.5"]},"rating_count":{"type":"string","description":"Available rating count represented as whole-count numeric text with decimal formatting, or empty text. Distinct from rating_value.","examples":["100.00"]},"upc":{"type":"string","description":"Available remote global product identifier text, or empty text.","examples":["123456789012"]},"isbn":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"asin":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"mpn":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"ean":{"type":"string","description":"Compatibility field currently returned as an empty string.","examples":[""]},"weight":{"type":"string","description":"Available remote weight text, or empty text. This response does not specify or convert its unit.","examples":["1.5"]},"length":{"type":"string","description":"Available remote length text, or empty text. This response does not specify or convert its unit.","examples":["10.0"]},"width":{"type":"string","description":"Available remote width text, or empty text. This response does not specify or convert its unit.","examples":["5.0"]},"height":{"type":"string","description":"Available remote height text, or empty text. This response does not specify or convert its unit.","examples":["2.0"]},"date_last_updated_in_remote_shop":{"type":["string","null"],"description":"Available remote modification text, or null. Its timezone and format are not guaranteed; do not assume direct comparability with the RevCent timestamp.","examples":["2025-10-16T11:04:38"]},"date_last_updated_in_revcent":{"type":["string","null"],"description":"Available matched RevCent product update time, formatted as UTC YYYY-MM-DDTHH:mm:ss without a timezone suffix, or null. Does not by itself establish whether synchronization is needed.","examples":["2025-10-29T13:11:35"]},"third_party_shop_id":{"type":"string","minLength":20,"maxLength":20,"description":"The requested account shop connection's 20 character RevCent ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"maxItems":10000},"shipping_methods":{"type":"array","description":"Available remote shipping methods, distinct from saved mappings. At most 10,000 entries. An unavailable, failed or oversized remote method response returns an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact method identifier from the remote shop as text, not a RevCent resource ID.","type":"string","examples":["12"]},"name":{"description":"Method name from the remote shop; may be empty.","type":"string","examples":["Flat Rate"]},"description":{"description":"Remote description; may be empty or omitted when unavailable.","type":"string","examples":["Flat Rate Shipping"]},"enabled":{"description":"Whether the remote shop reports this method as enabled.","type":"boolean","examples":[true]}}},"maxItems":10000},"offline_payment_methods":{"type":"array","description":"Available remote alternate payment methods, distinct from saved mappings. At most 10,000 entries. An unavailable, failed or oversized remote method response returns an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact method identifier from the remote shop as text, not a RevCent resource ID.","type":"string","examples":["34"]},"name":{"description":"Method name from the remote shop; may be empty.","type":"string","examples":["Sezzle"]},"method_title":{"description":"Remote display title; may be empty or omitted when unavailable.","type":"string","examples":["Sezzle Pay"]},"method_description":{"description":"Remote method description; may be empty or omitted when unavailable.","type":"string","examples":["Sezzle is a buy now pay later payment method."]},"description":{"description":"Remote description; may be empty or omitted when unavailable.","type":"string","examples":["Sezzle is a buy now pay later payment method."]},"enabled":{"description":"Whether the remote shop reports this method as enabled.","type":"boolean","examples":[true]}}},"maxItems":10000}}},"updated_date_unix":{"description":"Connection configuration update time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A User Shop","description":"Edit a user shop in RevCent. Only provide the properties you wish to modify. Properties not provided will remain unchanged.","operationId":"EditUserShop","x-api-permission-description":"Allows the editing of third party shops.","x-api-permission":"user_shop:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditUserShop.md","tags":["Shops"],"parameters":[{"in":"path","name":"user_shop_id","description":"The user shop ID.","required":true,"schema":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"description":"The user shop name. Must be unique from other user shop names.","type":"string","minLength":1,"examples":["Example"]},"description":{"description":"The third-party shop description. On edit, omission preserves it and an empty value clears it.","type":"string","examples":["Example description"]},"url":{"type":"string","description":"The shop URL.","examples":["https://example.com"]},"payment_profile_id":{"type":"string","description":"A 20 character payment profile ID to associate with the user shop. This determines the payment profile that will process credit card transactions.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"campaign_id":{"type":"string","description":"A 20 character campaign ID to associate with the user shop.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"site_shop_id":{"type":"string","description":"A 20 character site shop ID which is associated with the user shop.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"site_shop_version":{"type":"string","description":"The platform API version. Creation defaults to 3 for WooCommerce; editing preserves the saved version when omitted.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"offline_payment_methods":{"description":"An array of objects, each containing the name and possible third party integration for offline payment methods being used on the remote shop. Get the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'. It is important to map offline payment methods being used in a remote shop to third party integration, where applicable. When editing a user shops' offline_payment_methods it is important to include all methods, as the array will be replaced in its entirety. If there are no offline payment methods, provide an empty array.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The remote shop id for the individual offline payment method. This should be the ID returned from the remote shop in the remote_data.offline_payment_methods[payment_method] when retrieving the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"description":"The name of the offline payment method. This should be the name returned from the remote shop in the remote_data.offline_payment_methods[payment_method] when retrieving the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'.","type":"string","examples":["Example"]},"description":{"description":"The description of the offline payment method. This should be the description returned from the remote shop in the remote_data.offline_payment_methods[payment_method] when retrieving the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'.","type":"string","examples":["Example description"]},"method_title":{"description":"The method title of the offline payment method. This should be the method_title returned from the remote shop in the remote_data.offline_payment_methods[payment_method] when retrieving the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"method_description":{"description":"The method description of the offline payment method. This should be the method_description returned from the remote shop in the remote_data.offline_payment_methods[payment_method] when retrieving the remote shop offline payment methods using the GetUserShop operation with the remote_data query parameter containing 'offline_payment_methods'.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_integration":{"description":"The public ID of an account-owned integration whose type is offline_payment. A valid integration is required for each submitted method.","type":"string","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","name","third_party_integration"]}},"shipping_methods":{"type":"array","description":"An array of objects, each containing the name of the shipping method being used on the remote shop. Get the remote shop shipping methods using the GetUserShop operation with the remote_data query parameter containing 'shipping_methods'. When editing a user shops' shipping_methods it is important to include all methods, as the array will be replaced in its entirety. If there are no shipping methods, provide an empty array.","items":{"type":"object","additionalProperties":false,"properties":{"third_party_shipping_id":{"description":"The remote shop id for the individual shipping method. This should be the third_party_shipping_id returned from the remote shop in the remote_data.shipping_methods[shipping_method] when retrieving the remote shop shipping methods using the GetUserShop operation with the remote_data query parameter containing 'shipping_methods'.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_shipping_name":{"description":"The third_party_shipping_name of the shipping method. This should be the third_party_shipping_name returned from the remote shop in the remote_data.shipping_methods[shipping_method]. Use this name to accurately map the provider property to a shipping provider within RevCent.","type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider":{"type":"string","description":"The shipping method provider in RevCent that is associated with this specific shipping method. Get a list of shipping providers via the GetShippingProviders operation. This must be a 20 character ID for a shipping provider in RevCent.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"provider_method":{"type":"string","description":"The shipping method in RevCent that is associated with this specific shop shipping method. Get a list of shipping methods for the related provider via the GetShippingProvider operation. This must be a 20 character ID for a shipping provider method in RevCent which is associated with the provider.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["third_party_shipping_id","third_party_shipping_name","provider","provider_method"]}},"fields":{"description":"Credential entries for the selected site shop. Each entry must contain a nonempty id and value. The API checks the entries against the selected shop configuration: every configured credential ID must appear exactly once, and duplicate or unknown IDs are rejected. An empty array is rejected when the selected configuration requires credentials. These configuration-dependent checks are performed by the API and are not expressed by this array schema. Alternatively, supply a completed secure_form_id, whose credentials take precedence. To replace credentials on edit, also send site_shop_id.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The id for the individual field according to the site shop fields required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"description":"The value for the individual field according to the site shop fields required.","type":"string","minLength":1,"examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]}},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"enabled":{"type":"boolean","description":"Whether the third-party shop is enabled. Defaults to true on creation."},"live_mode":{"type":"boolean","description":"Whether the linked shop API account processes live operations. When supplying live_mode on edit, also supply another editable shop property, such as description or enabled. A request containing only live_mode is rejected, even if its value is unchanged."},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","dependentRequired":{"fields":["site_shop_id"],"secure_form_id":["site_shop_id"]},"allOf":[{"if":{"required":["site_shop_id"]},"then":{"anyOf":[{"required":["fields"]},{"required":["secure_form_id"]}]}},{"if":{"required":["live_mode"]},"then":{"anyOf":[{"required":["name"]},{"required":["description"]},{"required":["url"]},{"required":["payment_profile_id"]},{"required":["campaign_id"]},{"required":["site_shop_id"]},{"required":["site_shop_version"]},{"required":["offline_payment_methods"]},{"required":["shipping_methods"]},{"required":["enabled"]}]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"The third-party shop after creation or editing. Credentials are not returned. A successful save does not guarantee that remote installation checks or repairs succeeded. Use ValidateUserShop to check the installation.","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]},"code":{"type":"integer","const":1,"examples":[1]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"name":{"type":"string","examples":["Example"]},"description":{"type":"string","examples":["Example description"]},"url":{"type":"string","examples":["https://example.com"]},"enabled":{"type":"boolean"},"is_hosted":{"type":"boolean"},"live_mode":{"type":"boolean"},"shop_version":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"updated_date":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"created_date_unix":{"description":"The unix timestamp of when the item was created.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"The unix timestamp of when the item was last updated.","type":"integer","format":"unix-time","examples":[1675367500]},"fields_saved":{"type":"array","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"api_account":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"campaign":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"webhook":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"payment_profile":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]}}},"site_shop":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"name":{"type":"string","examples":["Example"]},"description":{"type":"string","examples":["Example description"]},"version":{"type":"string","examples":["EC_v1"]},"fields":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"description":{"type":"string","examples":["Example description"]},"required":{"type":"boolean"}}}}}}}}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_shops/{user_shop_id}/validate":{"post":{"summary":"Validate A User Shop","description":"Checks the WooCommerce RevCent payment settings and required webhooks. Does not repair remote settings. Use FixUserShop to request repairs.","operationId":"ValidateUserShop","x-api-permission-description":"Allows the validation of third party shops.","x-api-permission":"user_shop:validate","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/ValidateUserShop.md","tags":["Shops"],"parameters":[{"in":"path","name":"user_shop_id","description":"The user shop ID.","required":true,"schema":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Shop validation or repair could not verify the provider configuration.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0662","E0663"],"examples":["E0662"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"shop_response":{"type":"object","additionalProperties":true,"description":"Shop-provider response associated with the validation failure. Its fields depend on the provider."}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_shops/{user_shop_id}/fix":{"post":{"summary":"Fix A User Shop","description":"Checks a WooCommerce installation and repairs mismatched RevCent payment settings or webhooks. Performs at most two repair passes, verifying again after each. Missing or disabled plugins and connection failures are reported without repair.","operationId":"FixUserShop","x-api-permission-description":"Allows the fixing of third party shops.","x-api-permission":"user_shop:fix","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/FixUserShop.md","tags":["Shops"],"parameters":[{"in":"path","name":"user_shop_id","description":"The user shop ID.","required":true,"schema":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"id":{"type":"string","description":"A 20 character user shop ID.","minLength":20,"maxLength":20,"examples":["y24rXwQPGNfdMAQbmpmG"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_region":{"type":"string","enum":["1","2","3"],"description":"The RevCent API region that completed the request.","examples":["1"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"anyOf":[{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]},{"type":"object","additionalProperties":false,"description":"Shop validation or repair could not verify the provider configuration.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0662","E0663"],"examples":["E0662"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"shop_response":{"type":"object","additionalProperties":true,"description":"Shop-provider response associated with the validation failure. Its fields depend on the provider."}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_third_party_integrations":{"get":{"summary":"Get User Third Party Integrations","description":"Retrieve saved third-party integration configurations and their provider input definitions. Archived integrations are excluded; disabled integrations remain visible. This list does not retrieve remote choices.","operationId":"GetUserThirdPartyIntegrations","x-api-permission-description":"Allows the retrieval of user third party integrations.","x-api-permission":"user_third_party_integration:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserThirdPartyIntegrations.md","tags":["Third Party Integrations"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Number of integrations per page. Defaults to 25. Values 1–100 are honored; larger positive integers reset the limit to 25. Supply this parameter once.","schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"default":25,"examples":[25]},"style":"form"},{"name":"page","in":"query","required":false,"description":"Page number from 0 to 20. Defaults to 1; zero also selects page one. Supply this parameter once. Only limit and page query parameters are accepted.","schema":{"type":"integer","minimum":0,"maximum":20,"default":1,"examples":[1]},"style":"form"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Page of saved account integration configurations.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the integration configurations were retrieved successfully.","type":"integer","format":"int32","enum":[1],"examples":[1]},"current_count":{"description":"Number of integrations returned on this page. Unavailable entries may be omitted, so a short or empty result does not necessarily indicate the final page.","type":"integer","minimum":0,"maximum":100,"examples":[10]},"current_page":{"description":"Selected page number; omitted page and page zero both select page one.","type":"integer","minimum":1,"maximum":20,"examples":[1]},"results":{"items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"The account integration's 20 character RevCent ID for GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"Account integration name; may be empty.","type":"string","examples":["My OpenAI Account"]},"description":{"description":"Account integration description; may be empty or omitted when unavailable.","type":"string","examples":["The OpenAI integration for powering AI Assistants."]},"enabled":{"description":"Whether the integration is configured as enabled, when available. Disabled integrations remain in this list.","type":"boolean","examples":[true]},"third_party_credentials_saved":{"type":"array","description":"Keys identifying saved credential configurations, not credential values or RevCent resource IDs. Inclusion does not verify credential validity or connectivity. Order and duplicates are preserved. More than 1,000 entries causes a retrieval error.","items":{"type":"string","description":"Credential configuration key, not a RevCent resource ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":1000,"examples":["openai_api"]},"third_party_options_saved":{"type":"array","description":"Saved option groups and field values. Text, order and duplicates are preserved; saved values may differ from current choices. Each configuration array supports up to 1,000 entries; overflow causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Exact saved option-group configuration key, not a RevCent resource ID.","examples":["openai_model"]},"fields":{"type":"array","description":"Available saved option fields in configured order, including duplicates; malformed entries may be omitted.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Exact option-field configuration key, not a RevCent resource ID.","examples":["openai_model_selector"]},"value":{"type":"array","description":"Available saved text values in configured order, including duplicates and empty strings. Historical selections may differ from the current choices or selection settings.","items":{"type":"string","description":"One saved option value, including empty or historical text.","examples":["gpt-realtime-2"]},"maxItems":1000}}},"maxItems":1000}}},"maxItems":1000},"site_third_party_integration":{"type":"object","additionalProperties":false,"description":"Available provider definition and configuration inputs. This list does not retrieve remote choices or credential values.","properties":{"id":{"description":"The provider definition's 20 character RevCent ID for GetSiteThirdPartyIntegration, distinct from the account integration ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"Provider name; may be empty.","type":"string","examples":["OpenAI"]},"description":{"description":"Provider help text, when available; may be empty.","type":"string","examples":["The OpenAI API."]},"integration_type":{"description":"Provider purpose: ai for AI services, ai_voice for voice AI, offline_payment for alternate payments, shipping for shipment services, or tax for tax services.","type":"string","enum":["ai","ai_voice","offline_payment","tax","shipping"],"examples":["ai"]},"third_party_credentials":{"type":"object","description":"Credential input definitions, without credential values. Unavailable text is an empty string; unavailable fields are an empty array.","additionalProperties":false,"properties":{"id":{"description":"Exact credential-group configuration key, not a RevCent resource ID.","type":"string","examples":["openai_api"]},"name":{"description":"Available credential-group display label; empty when unavailable.","type":"string","examples":["OpenAI Credentials"]},"description":{"description":"Available credential-group help text; empty when unavailable.","type":"string","examples":["Your OpenAI credentials required for RevCent to connect."]},"fields":{"type":"array","description":"Credential field keys and labels, including partial definitions. Order and duplicates are preserved. More than 1,000 fields causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact credential-field configuration key; empty when unavailable. Not a RevCent resource ID.","type":"string","examples":["api_key"]},"name":{"description":"Available credential-field display label; empty when unavailable.","type":"string","examples":["API Key"]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]}}},"maxItems":1000}}},"third_party_options":{"type":"array","description":"Option input definitions, in configured order with duplicate keys preserved. Each configuration array supports up to 1,000 entries; overflow causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact option-group configuration key, not a RevCent resource ID.","type":"string","examples":["openai_model"]},"name":{"description":"Available option-group display label, including empty or historical text.","type":"string","examples":["Model"]},"description":{"description":"Available option-group help text, including empty or historical text.","type":"string","examples":["Select the OpenAI model to use for this integration."]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]},"fields":{"type":"array","description":"Available input or selector definitions for this group, preserving order and duplicate keys. Unusable definitions may be omitted.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact option-field configuration key; empty when unavailable. Not a RevCent resource ID.","type":"string","examples":["openai_model_selector"]},"name":{"description":"Available option-field label; empty when unavailable.","type":"string","examples":["OpenAI Model"]},"field_type":{"description":"input describes a text input; select describes a choice input. Saved historical values may differ from current choices.","type":"string","enum":["select","input"],"examples":["select","input"]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]},"select_settings":{"type":"object","description":"Available settings for a select input; omitted when unavailable.","additionalProperties":false,"properties":{"third_party_asset":{"type":"boolean","description":"Whether choices come from the provider. These choices are not retrieved in this list; use GetUserThirdPartyIntegration to request available remote choices.","examples":[true]},"options":{"type":"array","description":"Available static choices, preserving order, duplicates and empty strings. Always empty here for provider-supplied choices; use GetUserThirdPartyIntegration, subject to provider support and successful retrieval.","items":{"type":"string","examples":["gpt-realtime-2"]},"maxItems":1000},"multiple":{"type":"boolean","description":"Configured multiple-selection flag; false when unavailable. It does not rewrite or restrict the saved values returned here.","examples":[false]}}}}},"maxItems":1000}}},"maxItems":1000}}},"created_date_unix":{"description":"Integration creation time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Integration configuration update time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}}},"type":"array","maxItems":100,"description":"Available integrations from the selected page, newest creation first with stable ordering for equal creation times. Unusable entries are omitted without replacement. Beyond-end pages are empty and retain matching totals."},"total_count":{"description":"Number of matching integrations, including entries unavailable in the returned results. May remain positive when results are empty.","type":"integer","minimum":0,"examples":[28]},"total_pages":{"description":"Matching total divided by the effective limit, rounded up. Zero when no integrations match. May exceed 20, although only pages 1–20 can be retrieved.","type":"integer","minimum":0,"examples":[3]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Create A User Third Party Integration","description":"Create a connection to a supported third-party integration. Some integrations require account-specific options after creation: retrieve them with GetUserThirdPartyIntegration, then submit them with EditUserThirdPartyIntegration.","operationId":"CreateUserThirdPartyIntegration","x-api-permission-description":"Allows the creation of user third party integrations.","x-api-permission":"user_third_party_integration:create","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/CreateUserThirdPartyIntegration.md","tags":["Third Party Integrations"],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The User Third Party Integration name. Must be unique from other User Third Party Integration names.","examples":["Example"]},"description":{"type":"string","description":"The User Third Party Integration description.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the User Third Party Integration is enabled."},"site_third_party_integration":{"type":"string","description":"A 20 character site third party integration ID. Every user third party integration must have a site third party integration associated. Use the GetSiteThirdPartyIntegrations operation to retrieve the list of available site third party integrations and their corresponding IDs.<br><br>Important: A site third party integration may require third_party_options, which will be listed in the third_party_options array when performing the GetSiteThirdPartyIntegration operation. If third_party_options are listed, you will need to perform the GetUserThirdPartyIntegration operation after creating the user third party integration to see what options are available specific to the users' account with the third party. After choosing the option values, then perform the EditUserThirdPartyIntegration operation to set the options necessary.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_credentials":{"type":"object","description":"The credentials required for the third party integration. The third_party_credentials object corresponds to the 'third_party_credentials' object when retrieving a site third party integration using the GetSiteThirdPartyIntegration operation. Credential id 'third_party_credentials.id' and fields 'third_party_credentials.fields' are required in accordance with the site third party integration. Required unless secure_form_id is supplied. Supply exactly one credential source.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The third party credential ID, 'third_party_credentials.id', from the site third party integration.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"type":"array","description":"An array of required fields and their values specific to the site third party integration 'third_party_credentials.fields'. Use the GetSiteThirdPartyIntegration operation with the third party integration ID to retrieve the list of 'third_party_credentials.fields' whose id's and corresponding value's you will need to provide.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the field based on the id, i.e. 'credentials.fields[field].id', for the site third party integration.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"type":"string","description":"The credential value for this required field.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]}}},"required":["id","fields"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials. Required when direct credentials are omitted; do not also supply third_party_credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"required":["name","site_third_party_integration"],"type":"object","oneOf":[{"required":["third_party_credentials"]},{"required":["secure_form_id"]}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"user_third_party_integration_id":{"type":"string","description":"A 20 character user third party integration ID.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_third_party_integrations/{user_third_party_integration_id}":{"get":{"summary":"Get A User Third Party Integration","description":"Retrieve one account integration and its saved configuration, with remote selector choices retrieved automatically when available. Archived and disabled integrations remain retrievable. No query parameters are accepted.","operationId":"GetUserThirdPartyIntegration","x-api-permission-description":"Allows the retrieval of user third party integrations.","x-api-permission":"user_third_party_integration:retrieve","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/GetUserThirdPartyIntegration.md","tags":["Third Party Integrations"],"parameters":[{"in":"path","name":"user_third_party_integration_id","description":"20 character RevCent ID of the account integration to retrieve, available from GetUserThirdPartyIntegrations.","required":true,"schema":{"type":"string","description":"20 character RevCent ID of the account integration.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{},"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Details of the requested account integration, including available remote choices. Oversized configuration or an oversized overall response causes a retrieval error.","properties":{"api_call_id":{"description":"20 character RevCent ID of this API call.","type":"string","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"1 means the integration configuration was retrieved successfully. Remote choices may still be unavailable or incomplete.","type":"integer","enum":[1],"examples":[1]},"id":{"description":"The account integration's 20 character RevCent ID for GetUserThirdPartyIntegration.","type":"string","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"Account integration name; may be empty.","type":"string","examples":["My OpenAI Account"]},"description":{"description":"Account integration description; may be empty or omitted when unavailable.","type":"string","examples":["The OpenAI integration for powering AI Assistants."]},"enabled":{"description":"Whether the integration is configured as enabled, when available. Disabled integrations remain retrievable.","type":"boolean","examples":[true]},"third_party_credentials_saved":{"type":"array","description":"Keys identifying saved credential configurations, not credential values or RevCent resource IDs. Inclusion does not verify credential validity or connectivity. Order and duplicates are preserved. More than 1,000 entries causes a retrieval error.","items":{"type":"string","description":"Credential configuration key, not a RevCent resource ID.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"maxItems":1000,"examples":["openai_api"]},"third_party_options_saved":{"type":"array","description":"Saved option groups and field values. Text, order and duplicates are preserved; saved values may differ from current choices. Each configuration array supports up to 1,000 entries; overflow causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Exact saved option-group configuration key, not a RevCent resource ID.","examples":["openai_model"]},"fields":{"type":"array","description":"Available saved option fields in configured order, including duplicates; malformed entries may be omitted.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"Exact option-field configuration key, not a RevCent resource ID.","examples":["openai_model_selector"]},"value":{"type":"array","description":"Available saved text values in configured order, including duplicates and empty strings. Historical selections may differ from the current choices or selection settings.","items":{"type":"string","description":"One saved option value, including empty or historical text.","examples":["gpt-realtime-2"]},"maxItems":1000}}},"maxItems":1000}}},"maxItems":1000},"site_third_party_integration":{"type":"object","additionalProperties":false,"description":"Provider definition and configuration inputs, with remote choices retrieved automatically when available. Failed or unavailable choice retrieval can leave a selector empty while saved configuration and other successful choices remain available.","properties":{"id":{"description":"The provider definition's 20 character RevCent ID for GetSiteThirdPartyIntegration, distinct from the account integration ID.","type":"string","minLength":20,"maxLength":20,"examples":["zGkz8XvX9yT48q6LRqjW","r1Ebz4d6qaH05LPvWM1M"]},"name":{"description":"Provider name; may be empty.","type":"string","examples":["OpenAI"]},"description":{"description":"Provider help text, when available; may be empty.","type":"string","examples":["The OpenAI API."]},"integration_type":{"description":"Provider purpose: ai for AI services, ai_voice for voice AI, offline_payment for alternate payments, shipping for shipment services, or tax for tax services.","type":"string","enum":["ai","ai_voice","offline_payment","tax","shipping"],"examples":["ai"]},"third_party_credentials":{"type":"object","description":"Credential input definitions, without credential values. Unavailable text is an empty string; unavailable fields are an empty array.","additionalProperties":false,"properties":{"id":{"description":"Exact credential-group configuration key, not a RevCent resource ID.","type":"string","examples":["openai_api"]},"name":{"description":"Available credential-group display label; empty when unavailable.","type":"string","examples":["OpenAI Credentials"]},"description":{"description":"Available credential-group help text; empty when unavailable.","type":"string","examples":["Your OpenAI credentials required for RevCent to connect."]},"fields":{"type":"array","description":"Credential field keys and labels, including partial definitions. Order and duplicates are preserved. More than 1,000 fields causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact credential-field configuration key; empty when unavailable. Not a RevCent resource ID.","type":"string","examples":["api_key"]},"name":{"description":"Available credential-field display label; empty when unavailable.","type":"string","examples":["API Key"]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]}}},"maxItems":1000}}},"third_party_options":{"type":"array","description":"Option input definitions, in configured order with duplicate keys preserved. Each configuration array supports up to 1,000 entries; overflow causes a retrieval error.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact option-group configuration key, not a RevCent resource ID.","type":"string","examples":["openai_model"]},"name":{"description":"Available option-group display label, including empty or historical text.","type":"string","examples":["Model"]},"description":{"description":"Available option-group help text, including empty or historical text.","type":"string","examples":["Select the OpenAI model to use for this integration."]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]},"fields":{"type":"array","description":"Available input or selector definitions for this group, preserving order and duplicate keys. Unusable definitions may be omitted.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"description":"Exact option-field configuration key; empty when unavailable. Not a RevCent resource ID.","type":"string","examples":["openai_model_selector"]},"name":{"description":"Available option-field label; empty when unavailable.","type":"string","examples":["OpenAI Model"]},"field_type":{"description":"input describes a text input; select describes a choice input. Saved historical values may differ from current choices.","type":"string","enum":["select","input"],"examples":["select","input"]},"required":{"type":"boolean","description":"Compatibility indicator returned as true. Refer to CreateUserThirdPartyIntegration or EditUserThirdPartyIntegration for submission requirements; this flag does not require resubmitting every field on each edit.","const":true,"examples":[true]},"select_settings":{"type":"object","description":"Available settings for a select input; omitted when unavailable.","additionalProperties":false,"properties":{"third_party_asset":{"type":"boolean","description":"Whether choices come from the provider. Available choices are retrieved automatically for this configured integration. An empty array can mean no available choices or unsuccessful retrieval.","examples":[true]},"options":{"type":"array","description":"Available choice strings, preserving order, duplicates and empty strings. Static choices support up to 1,000 entries; remote choices up to 10,000. Oversized static configuration rejects retrieval. Unavailable, failed or oversized remote choices leave this array empty while saved selections and other successful choices remain available. Choice lists may be incomplete.","items":{"type":"string","examples":["gpt-realtime-2"]},"maxItems":10000},"multiple":{"type":"boolean","description":"Configured multiple-selection flag; false when unavailable. It does not rewrite or restrict the saved values returned here.","examples":[false]}}}}},"maxItems":1000}}},"maxItems":1000}}},"created_date_unix":{"description":"Integration creation time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]},"updated_date_unix":{"description":"Integration configuration update time in Unix seconds, omitted when unavailable.","type":"integer","format":"unix-time","examples":[1675367500]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}},"post":{"summary":"Edit A User Third Party Integration","description":"Edit a previously created User Third Party Integration using the integration ID. Only supplied fields are updated.","operationId":"EditUserThirdPartyIntegration","x-api-permission-description":"Allows the editing of user third party integrations.","x-api-permission":"user_third_party_integration:edit","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/EditUserThirdPartyIntegration.md","tags":["Third Party Integrations"],"parameters":[{"in":"path","name":"user_third_party_integration_id","description":"The User Third Party Integration ID","required":true,"schema":{"type":"string","description":"A 20 character user third party integration ID.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string","description":"The User Third Party Integration name. Must be unique from other User Third Party Integration names.","examples":["Example"]},"description":{"type":"string","description":"The User Third Party Integration description. Omit to keep the current description. Send an empty string to clear it.","examples":["Example description"]},"enabled":{"type":"boolean","description":"Whether the User Third Party Integration is enabled."},"third_party_credentials":{"type":"object","description":"The credentials required for the third party integration. Only provide if you wish to modify the existing saved credentials in RevCent. The credentials object corresponds to the 'third_party_credentials' object when retrieving a site third party integration using the GetSiteThirdPartyIntegration operation. Credential id 'third_party_credentials.id' and fields 'third_party_credentials.fields' are required in accordance with the site third party integration.","additionalProperties":false,"properties":{"id":{"type":"string","description":"The third party credential ID, 'third_party_credentials.id', from the site third party integration.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"type":"array","description":"An array of required fields and their values specific to the site third party integration 'third_party_credentials.fields'. Use the GetSiteThirdPartyIntegration operation with the third party integration ID to retrieve the list of 'third_party_credentials.fields' whose id's and corresponding value's you will need to provide.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the field based on the id, i.e. 'credentials.fields[field].id', for the site third party integration.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"type":"string","description":"The credential value for this required field.","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"required":["id","value"]}}},"required":["id","fields"]},"secure_form_id":{"type":"string","description":"A completed secure form ID. Create the form with CreateSecureForm, complete its form_url, and supply this ID to use the submitted credentials.","minLength":20,"maxLength":20,"examples":["aaaaaaaaaaaaaaaaaaaa"]},"third_party_options":{"type":"array","description":"An array of options specific to the site third party integration, if the site third party integration has a non-empty third_party_options array. The options will be based on the site third party integration 'third_party_options' when retrieving a site third party integration using the GetSiteThirdPartyIntegration operation. Some site third party integrations may have no options, while others may have multiple. Each option will have an id and an array of fields. The fields for each option will also correspond to the site integration. The values for each field will be specific to a users' account with the third party and can be retrieved via the GetUserThirdPartyIntegration operation after creating the user third party integration. Remote options, where 'remote_asset' = true, are specific to a user's third party integration, can be retrieved via the GetUserThirdPartyIntegration after having previously saved the credentials.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The id for the option based on the site third party integration. I.e. 'third_party_options[option].id'.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"fields":{"type":"array","description":"An array of fields specific to each option, i.e. 'third_party_options[option].fields'. Use the GetSiteThirdPartyIntegration operation with the third party integration ID to retrieve the list of 'third_party_options[option].fields'.","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","description":"The ID of the field based on the third_party_options[option].fields[fields].id from the site third party integration.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"value":{"type":"array","description":"The value array, which contains all value(s) corresponding to the fields.id for the site third party integration 'third_party_options[option].fields[fields].value'. Most of the time only a single entry will be necessary, but some options may have multiple entries in the value array, determined by the is_multiple property from the site integration. Remote options, where 'remote_asset' = true, are specific to a user's third party integration, can be retrieved via the GetUserThirdPartyIntegration after having previously saved the credentials.","items":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}}},"required":["id","value"]}}},"required":["id","fields"]}},"idempotency_key":{"type":"string","minLength":11,"maxLength":255,"description":"Optional unique key for this specific request. Use 11–255 characters, preferably ASCII. Reuse the same key only when retransmitting the same request after a timeout or lost response. A recognized duplicate returns HTTP 400 with error_code E0583 without executing again; the original response is not returned, and the duplicate error does not establish the operation outcome. Keys are scoped to your account and API credential, across operations. Use a new key for each deliberate new operation. A failed request can consume its key. Other lengths provide no duplicate protection. Keys are not permanent resource identifiers.","examples":["6f312ce2-7959-4c1b-a8dd-591fc5c789cf"]}},"type":"object","allOf":[{"not":{"required":["third_party_credentials","secure_form_id"]}}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"user_third_party_integration_id":{"type":"string","description":"A 20 character user third party integration ID.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["aaaaaaaaaaaaaaaaaaaa"]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}},"/user_third_party_integrations/{user_third_party_integration_id}/delete":{"post":{"summary":"Delete A User Third Party Integration","description":"Delete a specific user third party integration using the integration ID and delete path.","operationId":"DeleteUserThirdPartyIntegration","x-api-permission-description":"Allows the deletion of user third party integrations.","x-api-permission":"user_third_party_integration:delete","x-ai-options":["mcp"],"x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/DeleteUserThirdPartyIntegration.md","tags":["Third Party Integrations"],"parameters":[{"in":"path","name":"user_third_party_integration_id","description":"The User Third Party Integration ID","required":true,"schema":{"type":"string","description":"A 20 character user third party integration ID.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":"string","description":"A 20 character API call ID.","minLength":20,"maxLength":20,"examples":["KnBKryj7jOFPLW1pqkVM"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"API call response code.","type":"integer","format":"int32","enum":[1],"examples":[1]},"user_third_party_integration_id":{"type":"string","description":"A 20 character user third party integration ID.","minLength":20,"maxLength":20,"examples":["8r4Er1PZglFWLblb7d8z","r1Ebz4d6qaH05LPvWM1M"]},"result":{"type":"string","examples":["User third party integration deleted."]}},"type":"object","additionalProperties":false}}},"description":"Successful response."},"400":{"description":"Request or operation validation failed.","content":{"application/json":{"schema":{"description":"Ordinary validation errors or a malformed request rejected before API-call processing.","anyOf":[{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":["aaaaaaaaaaaaaaaaaaaa"]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false},{"type":"object","additionalProperties":false,"description":"Request rejected before API-call processing. The API-call ID is null.","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available.","examples":[null]},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"type":"string","enum":["E0208"],"examples":["E0208"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]},"api_call_processed":{"type":"boolean","enum":[false],"description":"False when the request was rejected before API-call processing began.","examples":[false]},"valid_json":{"type":"boolean","enum":[false],"description":"False when the request body could not be accepted for processing.","examples":[false]}}}]}}}},"default":{"content":{"application/json":{"schema":{"description":"","properties":{"api_call_id":{"type":["string","null"],"minLength":20,"maxLength":20,"description":"The 20 character RevCent ID of this API call, or null if the request failed before an ID was available."},"api_call_unix":{"description":"Unix timestamp of when the API call was initiated.","type":"integer","format":"unix-time","examples":[1675367500]},"code":{"description":"This value indicates that there is an error. Will always be 0.","type":"integer","examples":[0],"enum":[0]},"error_code":{"description":"The specific error code.","type":"string","examples":["E0001"]},"message":{"description":"A human readable description of the error.","type":"string","examples":["An API error occurred."]},"result":{"description":"A description of the API call result.","type":"string","examples":["Error"]}},"title":"APIStandardErrors","type":"object","additionalProperties":false}}},"description":"Error response."}}}}},"tags":[{"name":"AI Assistants","description":"An AI Assistant runs autonomously when triggered via events, on a schedule or on demand. RevCent handles the entire orchestration of an AI Assistant run, including providing the AI with all necessary information and context, running any tool calls and more.<br><br>Use the API to get a list of AI Assistants, get a single AI Assistant, create an AI Assistant, edit an AI Assistant, delete an AI Assistant or trigger an AI Assistant.","x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants","x-kb-name":"AI Assistants","x-md-link":"markdown/mcp/operation/OverviewAIAssistant.md"},{"name":"AI Memos","description":"An AI Memo is created when an AI Assistant calls the AI Memo Create API method during the run of an AI Thread. Note: Only an AI Assistant can create an AI Memo.<br><br>Use the API to get a list of AI Memos created during a specified date range, get a single AI Memo by ID or delete an AI Memo.","x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-memos","x-kb-name":"AI Memos","x-md-link":"markdown/mcp/operation/OverviewAIMemo.md"},{"name":"AI Prompts","description":"An AI Prompt is a saved message intended for conversing with AI without having to manually retype a repetitive message.<br><br>Use the API to get a list of AI Prompts created during a specified date range, get a single AI Prompt, create an AI Prompt, edit an AI Prompt or delete an AI Prompt.","x-kb-link":"https://kb.revcent.com/en/tools/ai/chat#ai-prompts","x-kb-name":"AI Prompts","x-md-link":"markdown/mcp/operation/OverviewAIPrompt.md"},{"name":"AI Threads","description":"An AI Thread is created when an AI Assistant is triggered via API, account event or web app.<br><br>Use the API to get a list of AI Threads created during a specified date range or get a single AI Thread by ID.","x-kb-link":"https://kb.revcent.com/en/tools/ai/assistants#ai-threads","x-kb-name":"AI Threads","x-md-link":"markdown/mcp/operation/OverviewAIThread.md","x-ai-q":"Tell me how AI Threads work in RevCent and how they can help my ecommerce business manage AI-driven interactions effectively."},{"name":"AI Voice Agents","description":"An AI Voice Agent is a fully managed bi-directional voice communication between a human and AI. RevCent handles the orchestration and linking of a Twilio call to OpenAI's realtime API. You create the voice agent using the API, and RevCent handles both inbound and outbound calls.<br><br>Use the API to get a list of AI Voice Agents, get a single AI Voice Agent, create an AI Voice Agent, edit an AI Voice Agent, delete an AI Voice Agent or trigger an AI Voice Agent.","x-kb-link":"https://kb.revcent.com/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/OverviewAIVoiceAgent.md","x-ai-q":"Tell me how using AI Voice Agents and AI Voice Calls in RevCent can automate and enhance voice communications with customers for my ecommerce business."},{"name":"AI Voice Calls","description":"An AI Voice Call is created when an AI Voice Agent is triggered via API, account event or inbound call.<br><br>Use the API to get a list of AI Voice Calls created during a specified date range or get a single AI Voice Call by ID.","x-kb-link":"https://kb.revcent.com/tools/ai/voice-agents","x-kb-name":"AI Voice Agents","x-md-link":"markdown/mcp/operation/OverviewAIVoiceCall.md","x-ai-q":"Tell me how using AI Voice Agents and AI Voice Calls in RevCent can automate and enhance voice communications with customers for my ecommerce business."},{"name":"AI Voice Snippets","description":"AI Voice Snippets are a subset of AI Voice Agent markdown instructions. AI Voice Snippets give you the ability to create re-usable content throughout multiple agents' instructions, and only modify the re-usable content in one place.<br><br>Snippets should only be used where several voice agents share common instructions that are frequently changed.<br><br>Use the API to get a list of AI Voice Snippets, get a single AI Voice Snippet, create a voice snippet, edit a voice snippet and delete a voice snippet.","x-kb-link":"https://kb.revcent.com/en/tools/ai/voice-agents#ai-voice-snippets","x-kb-name":"AI Voice Snippets","x-md-link":"markdown/mcp/operation/OverviewAIVoiceSnippet.md"},{"name":"API Calls","description":"An API call is created when a request is made to the API. All API requests have an associated API call, providing an audit mechanism to review past requests.<br><br>Use the API to get a list of API calls created during a specified date range and get a single API call by ID.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewAPICall.md","x-ai-q":"Tell me how using RevCent to manage API calls, including tracking and auditing requests, will help my ecommerce business."},{"name":"BigQuery","description":"BigQuery is Google's serverless, highly scalable, and cost-effective multi-cloud data warehouse designed for business agility. RevCent's BigQuery integration allows you to run SQL queries on your RevCent data which is stored in BigQuery.<br><br>Use the API to get a list of BigQuery tables with schemas, get a single BigQuery table by table name with schema and run a SQL query on your BigQuery tables.","x-kb-link":"https://kb.revcent.com/en/reporting/bigquery","x-kb-name":"BigQuery","x-md-link":"markdown/mcp/operation/OverviewBigQuery.md"},{"name":"BIN Profiles","description":"A BIN profile allows you to store a list of credit card BIN's, i.e. the first 6 of a credit card, for use in filtering, reporting and more.<br><br>Use the API to get a list of BIN profiles, get a single BIN profile by ID, create a BIN profile, modify a BIN profile and delete a BIN profile.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/bin-profile","x-kb-name":"BIN Profiles","x-md-link":"markdown/mcp/operation/OverviewBinProfile.md"},{"name":"Campaigns","description":"A campaign is a way to organize and filter various items within your account.<br><br>Use the API to get a list of campaigns created during a specified date range, get a single campaign by ID, create a campaign and modify a campaign.","x-kb-link":"https://kb.revcent.com/en/management/campaign","x-kb-name":"Campaigns","x-md-link":"markdown/mcp/operation/OverviewCampaign.md","x-ai-q":"Tell me how Campaigns work in RevCent and how they can help my ecommerce business organize and manage effectively."},{"name":"Chargebacks","description":"A chargeback is always associated with an existing credit card transaction within RevCent.<br><br>Use the API to get a list of chargebacks created during a specified date range, get a single chargeback by ID, get chargebacks specific to a customer, create a chargeback, modify a chargeback and generate a chargeback document to fight a chargeback.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/chargeback","x-kb-name":"Chargebacks","x-md-link":"markdown/mcp/operation/OverviewChargeback.md","x-ai-q":"Tell me how using RevCent to manage chargebacks, including mitigation and representment updates will help my ecommerce business."},{"name":"Checks","description":"A check is created during a sale with a check_direct payment type.<br><br>Use the API to get a list of checks created during a specified date range, get a single check by ID and get checks specific to a customer.<br><br>Note: If you wish to refund a check you instead refund the entity that the check is associated using either the VoidSale, RefundProductSale, RefundTax or RefundShipment operations.","x-kb-link":"https://kb.revcent.com/en/payments/check","x-kb-name":"Checks","x-md-link":"markdown/mcp/operation/OverviewCheckDirect.md"},{"name":"Coupons","description":"Coupons and coupon profiles are created and managed in RevCent. A coupon is a single use or multi-use code that can be applied to a sale for a discount. A coupon profile are the properties of a coupon, such as revenue applications, customer limits and more.","x-kb-link":"https://kb.revcent.com/en/payments/coupon","x-kb-name":"Coupons","x-md-link":""},{"name":"Customers","description":"A customer is created directly using the API or during the creation of a sale.<br><br>Use the API to get a list of customers created during a specified date range, get a single customer by ID, create a customer, modify a customer, enable or disable a customer, add a credit card to a customer, add a customer to a customer group, remove a customer from a customer group and search all customers.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewCustomer.md","x-ai-q":"Tell me how using RevCent to manage customers will help my ecommerce business."},{"name":"Customer Groups","description":"A customer group is a way to group customers based on unique and granular qualifiers.<br><br>Use the API to get a list of customer groups, get a single customer group value by ID, create a customer group, modify a customer group and delete a customer group.","x-kb-link":"https://kb.revcent.com/en/customer/customer-group","x-kb-name":"Customer Groups","x-md-link":"markdown/mcp/operation/OverviewCustomerGroup.md","x-ai-q":"Tell me how using customer groups in RevCent can organize/segment my customers and help my ecommerce business."},{"name":"Customer Portals","description":"A customer portal is a way for customers to manage their account and subscriptions using a custom domain, including the ability to embed as an iframe on your existing stores' website.<br><br>Use the API to get a list of customer portals, get a single customer portal by ID, create a customer portal, modify a customer portal and delete a customer portal.","x-kb-link":"https://kb.revcent.com/en/customer/customer-portal","x-kb-name":"Customer Portals","x-md-link":"markdown/mcp/operation/OverviewCustomerPortal.md"},{"name":"Discounts","description":"A discount is created during a sale that has a coupon code or a discount entry.<br><br>Use the API to get a list of discounts created during a specified date range, get a single discount by ID and get discounts specific to a customer.","x-kb-link":"https://kb.revcent.com/en/payments/discount","x-kb-name":"Discounts","x-md-link":"markdown/mcp/operation/OverviewDiscount.md"},{"name":"Documentation","description":"Stored documentation is accessible via documentation search. Use a search term to find relevant documentation via vector search. Fetch returned documentation using the documentation result URL.","x-kb-link":"","x-kb-name":"","x-md-link":""},{"name":"Email Templates","description":"An Email Template is used to send an email to one or more recipients and utilize handlebars syntax for dynamic content.<br><br>Use the API to get a list of Email Templates, get a single Email Template, create an Email Template, edit an Email Template or delete an Email Template.","x-kb-link":"https://kb.revcent.com/en/integrations/smtp/email-template","x-kb-name":"Email Templates","x-md-link":"markdown/mcp/operation/OverviewEmailTemplate.md"},{"name":"Fulfillment","description":"There are two different fulfillment entities in RevCent: the site fulfillment center and the user fulfillment account. A site fulfillment center is the third party fulfillment service with a global ID, not associated with a specific user. The user fulfillment account is an individual fulfillment account specific to a fulfillment service (site fulfillment center) which is notified when a shipment is created in RevCent. Shipments are created in RevCent when a shippable product(s) sold is associated with a user fulfillment account. The fulfillment service is notified of a shipment for it to be packaged and shipped.<br><br>Use the API to get a list of site fulfillment centers, get a single site fulfillment center by ID, get a list of user fulfillment accounts, get a single user fulfillment account by ID, create a user fulfillment account and modify a user fulfillment account.","x-kb-link":"https://kb.revcent.com/en/integrations/fulfillment-account","x-kb-name":"Fulfillment","x-md-link":"markdown/mcp/operation/OverviewFulfillment.md"},{"name":"Functions","description":"A Function is a snippet of JavaScript code hosted and run by RevCent in a NodeJS environment.<br><br>Use the API to get a list of Functions, get a single Function, create a Function, edit a Function, delete a Function or trigger a Function.","x-kb-link":"https://kb.revcent.com/en/integrations/functions","x-kb-name":"Functions","x-md-link":"markdown/mcp/operation/OverviewFunction.md"},{"name":"Gateways","description":"There are two different gateway entities in RevCent: the site gateway and the user gateway. A site gateway is the third party payment gateway with a global ID, not associated with a specific user. The user gateway is an individual MID, which is associated with a specific user and has an attached site gateway.<br><br>Use the API to get a list of site gateways, get a single site gateway by ID, get a list of user gateways, get a single user gateway by ID, create a user gateway and modify a user gateway.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway","x-kb-name":"Gateways","x-md-link":"markdown/mcp/operation/OverviewGateway.md"},{"name":"Gateway Groups","description":"A gateway group is used as an organizer for user gateways as well as within advanced payment routing.<br><br>Use the API to get a list of gateway groups, get a single gateway group by ID, create a gateway group, modify a gateway group, add a user gateway to a gateway group and remove a user gateway from a gateway group.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/gateway-group","x-kb-name":"Gateway Groups","x-md-link":"markdown/mcp/operation/OverviewGatewayGroup.md"},{"name":"Key Values","description":"A Key Value is a unique key with a value associated with it. It is meant as a way to access saved values by key throughout your RevCent account.<br><br>Use the API to get a list of key values, get a single key value, create a key value, edit a key value and delete a key value.","x-kb-link":"https://kb.revcent.com/en/tools/key-value","x-kb-name":"Key Values","x-md-link":"markdown/mcp/operation/OverviewKeyValue.md"},{"name":"Metadata","description":"Metadata is used to store name value pairs that can be used for reporting, filtering and more. Metadata names and associated values are stored when Revcent receives a transaction with metadata included in the payload or when RevCent tracking URL parameters are detected and saved for a tracking visitor.<br><br>Use the API to get all saved metadata, get a metadata entry with saved values and insert metadata directly to an item.","x-kb-link":"https://kb.revcent.com/en/tracking/conversion-tracking","x-kb-name":"Metadata","x-md-link":"markdown/mcp/operation/OverviewMetadata.md"},{"name":"Notes","description":"A note is created using the API or within the web app. A note is always attached to a specific item and is viewable via the web app or API. Use the API to create a note specific to an item.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewNote.md","x-ai-q":"Tell me how using RevCent to manage notes, including creation will help my ecommerce business."},{"name":"Offline Payments","description":"An offline payment is created during a sale with a offline_payment payment type.<br><br>Use the API to get a list of offline payments created during a specified date range, get a single offline payment by ID and get offline payments specific to a customer.<br><br>Note: If you wish to refund an offline payment you instead refund the entity that the offline payment is associated using either the VoidSale, RefundProductSale, RefundTax or RefundShipment operations.","x-kb-link":"https://kb.revcent.com/en/payments/offline","x-kb-name":"Offline Payments","x-md-link":"markdown/mcp/operation/OverviewOfflinePayment.md","x-ai-q":"Tell me how using RevCent to create and manage offline payments from third party payment companies, including creation and refunds, will help my ecommerce business."},{"name":"Payment Profiles","description":"A payment profile is a core component of the RevCent platform. A payment profile is used when creating a credit card sale, and determines the routing of credit card payments to specific processors according to rules, conditions and design.<br><br>Use the API to get a list of payment profiles, get a single payment profile by ID, create a new payment profile or modify a payment profile.","x-kb-link":"https://kb.revcent.com/payments/credit-card/next-gen-payment-profile","x-kb-name":"Payment Profiles","x-md-link":"markdown/mcp/operation/OverviewPaymentProfile.md"},{"name":"PayPal Accounts","description":"A PayPal account is created when a user links their PayPal account to RevCent.<br><br>Use the API to get a list of PayPal accounts, get a single PayPal account by ID, create a new PayPal account, modify a PayPal account and delete a PayPal account.","x-kb-link":"https://kb.revcent.com/en/payments/paypal/paypal-account","x-kb-name":"PayPal Accounts","x-md-link":"markdown/mcp/operation/OverviewPayPalAccount.md"},{"name":"PayPal Disputes","description":"A PayPal dispute is created when a customer disputes a PayPal transaction. RevCent automatically monitors PayPal accounts for new disputes and dispute updates directly from PayPal.<br><br>Use the API to get a list of PayPal disputes created during a specified date range, get a single PayPal dispute by ID and get PayPal disputes specific to a customer.","x-kb-link":"https://kb.revcent.com/en/payments/paypal/dispute","x-kb-name":"PayPal Disputes","x-md-link":"markdown/mcp/operation/OverviewPayPalDispute.md","x-ai-q":"Tell me how PayPal disputes work in RevCent and how RevCent monitors PayPal Accounts for new disputes and dispute updates."},{"name":"PayPal Transactions","description":"A PayPal transaction is created during a sale with a PayPal payment type.<br><br>Use the API to get a list of PayPal transactions created during a specified date range, get a single PayPal transaction by ID and get PayPal transactions specific to a customer.<br><br>Note: If you wish to refund a PayPal transaction you instead refund the entity that the PayPal transaction is associated using either the VoidSale, RefundProductSale, RefundTax or RefundShipment operations.","x-kb-link":"https://kb.revcent.com/en/payments/paypal/transaction","x-kb-name":"PayPal Transactions","x-md-link":"markdown/mcp/operation/OverviewPayPalTransaction.md","x-ai-q":"Tell me how PayPal transactions work in RevCent."},{"name":"Pending Refunds","description":"A pending refund is created when a credit card transaction, PayPal transaction, check or offline payment is refunded directly or when an entity associated with either is refunded. You do not create a pending refund directly, you instead refund an entity which then creates a pending refund. RevCent will automatically complete a pending refund with the payment processor as soon as the processor allows.<br><br>Use the API to get a list of pending refunds created during a specified date range, get a single pending refund by ID and get pending refunds specific to a customer.","x-kb-link":"https://kb.revcent.com/en/payments/pending-refund","x-kb-name":"Pending Refunds","x-md-link":"markdown/mcp/operation/OverviewPendingRefund.md","x-ai-q":"Tell me how pending refunds work in RevCent."},{"name":"Products","description":"A product is a line item which is purchased during a sale, and every sale must have at least one product. Products can create subscriptions, trials or be unbundled at time of sale or fulfillment.<br><br>Use the API to get a list of products created during a specified date range, get a single product by ID, create a new product, modify a product and search for products.","x-kb-link":"https://kb.revcent.com/en/product","x-kb-name":"Products","x-md-link":"markdown/mcp/operation/OverviewProduct.md","x-ai-q":"Tell me how products work in RevCent."},{"name":"Product Groups","description":"A product group is a collection of products that are grouped together for organizational purposes. Great for use in filtering, reporting and mroe.<br><br>Use the API to get a list of product groups, get a single product group by ID, create a new product group, modify a product group and delete a product group.","x-kb-link":"https://kb.revcent.com/en/product/product-group","x-kb-name":"Product Groups","x-md-link":"markdown/mcp/operation/OverviewProductGroup.md","x-ai-q":"Tell me how product groups work in RevCent."},{"name":"Products Sold","description":"A product sale is the line item purchase of a specific product within an individual sale, i.e. a line item within a sale. The product sale entity allows advanced metrics on a product specific level.<br><br>Use the API to get a list of product sales created during a specified date range, get a single product sale by ID, refund a product sale and get product sales specific to a customer.","x-kb-link":"https://kb.revcent.com/en/revenue/sale#product-sale","x-kb-name":"Products Sold","x-md-link":"markdown/mcp/operation/OverviewProductSale.md","x-ai-q":"Tell me how product sales work in RevCent."},{"name":"Projects","description":"A Project can represent a business, an objective, an operational initiative, a reporting workspace, an external-agent source of truth, or any durable AI/MCP context container that should be reused over time.<br><br>Projects are useful for AI because they prevent every future interaction from needing all historical context in the prompt.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewProject.md","x-ai-q":"Tell me how projects work in RevCent and how they can help my ecommerce business and provide better context for AI interactions."},{"name":"Sales","description":"A sale is created using the web app, API, plugin or hosted solution. A sale consists of product sales, shipments, tax and discounts. Every sale has a specific customer and is the spawning point for subscriptions and trials.<br><br>Use the API to get a list of sales created during a specified date range, get a single sale by ID, create a sale, void a sale, get sales specific to a customer and search all sales.","x-kb-link":"https://kb.revcent.com/en/revenue/sale","x-kb-name":"Sales","x-md-link":"markdown/mcp/operation/OverviewSale.md","x-ai-q":"Tell me how sales work in RevCent."},{"name":"Salvage Transactions","description":"A salvage transaction is created when a credit card transaction is fully or partially declined.<br><br>Use the API to get a list of salvage transactions created during a specified date range, get a single salvage transaction by ID and get salvage transactions specific to a customer.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/salvage-transaction","x-kb-name":"Salvage Transactions","x-md-link":"markdown/mcp/operation/OverviewSalvageTransaction.md","x-ai-q":"Tell me how salvage transactions work in RevCent and how they can help my ecommerce business recover lost revenue."},{"name":"Secure Forms","description":"Secure forms let a user provide credentials through a secure web page. CreateSecureForm returns a form ID and form_url. Ask the user to open that URL and complete the form, then use the completed form ID when creating or updating the supported gateway, SMTP profile, fulfillment account, third-party shop or integration. GetSecureForm lets you check completion.<br><br>A form expires one hour after creation. Complete and use it before expiration; requests to access an expired form return an error.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewSecureForm.md","x-ai-q":"Tell me how secure forms work in RevCent and how they can help my ecommerce business securely handle sensitive data."},{"name":"Sentinel Anti-Fraud","description":"Sentinel Anti-Fraud is RevCent's in-house multi layered anti-fraud system which protects your account from processing fraudulent charges.<br><br>Built by RevCent after years of experience with ecommerce payments, Sentinel analyzes IP addresses, validates tracking visitors and utilizes third parties before processing payments.<br><br>Use the API to get account Sentinel settings, modify account Sentinel settings, get fraud detections by date range, get a fraud detection by ID, create a fraud detection and edit a fraud detection.","x-kb-link":"https://kb.revcent.com/en/tools/sentinel","x-kb-name":"Sentinel Anti-Fraud","x-md-link":"markdown/mcp/operation/OverviewSentinelAntiFraud.md","x-ai-q":"Tell me how Sentinel Anti-Fraud works in RevCent and how it can help my ecommerce business prevent fraudulent transactions and card testing events."},{"name":"Shipping","description":"A shipment is created during a sale, subscription renewal or trial expiration, when one or more products sold are associated with a fulfillment account.<br><br>Use the API to get a list of shipments created during a specified date range, get a single shipment by ID, refund a shipment, get shipments specific to a customer and search all shipments.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping","x-md-link":"markdown/mcp/operation/OverviewShipping.md","x-ai-q":"Tell me how shipping works in RevCent and how it can help my ecommerce business manage the shipping process for orders with shippable products."},{"name":"Shipping Profiles","description":"A shipping profile is created to define the settings for calculating shipping rates on sales, trial expirations and subscription renewals that have shippable products.<br><br>RevCent will analyze all enabled shipping profiles and find the best match for a shipping rate based on number of matched qualifiers. This is necessary for trial expirations and subscription renewals which have shippable products. Sales with a predefined shipping entry in the API request, i.e. shipping calculated at a third party shop, will use that entry instead of calculating a new rate.<br><br>Use the API to get a list of shipping profiles, get a single shipping profile by ID, create a new shipping profile, update an existing shipping profile, and delete a shipping profile.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping","x-kb-name":"Shipping Profiles","x-md-link":"markdown/mcp/operation/OverviewShippingProfile.md","x-ai-q":"Tell me how shipping profiles work in RevCent and how they can help my ecommerce business calculate accurate shipping rates for orders with shippable products, subscription renewals and trial expirations."},{"name":"Shipping Providers","description":"A site shipping provider is the actual carrier, such as USPS or FedEx, stored in RevCent using individual ID's along with respective shipping methods and ID's. Site shipping providers and their methods are used to calculate shipping rates within shipping profiles.<br><br>Use the API to get a list of site shipping providers or get a single site shipping provider by ID with provider methods.","x-kb-link":"https://kb.revcent.com/en/revenue/shipping#shipping-methods","x-kb-name":"Shipping Providers","x-md-link":"markdown/mcp/operation/OverviewShippingProvider.md","x-ai-q":"Tell me how shipping providers work in RevCent and how they can help my ecommerce business notify fulfillment on correct shipping methods and rates for orders with shippable products, subscription renewals and trial expirations."},{"name":"Shops","description":"There are two different shop entities in RevCent: the site shop and the user shop. A site shop is the third party shopping cart software, such as WooCommerce, with a global ID, not associated with a specific user, that is powering your online ecommerce store. You create a user shop based on a site shop. The user shop is an individual shop with a unique URL, created using the web app or API and associated with a site shop.<br><br>Important: A Shop/Third Party Shop/Site Shop is completely different than a RevCent Site. Third Party Shops are remote independently hosted shopping carts, such as WooCommerce, that are integrated with RevCent. A RevCent Site is a fully customizable site hosted by RevCent that allows you to have full control via GitHub repo access.<br><br>Use the API to get a list of site shops, get a single site shop by ID, get a list of user shops, get a single user shop by ID, create a user shop, edit a user shop and validate or fix user shop remote settings.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewShop.md","x-ai-q":"Tell me how RevCent can take my WooCommerce store to the next level."},{"name":"Sites","description":"RevCent Sites is an AI only feature that allows users to deploy and fully customize their own RevCent site to manage their ecommerce business operations. A site is created using the API or MCP, then customized using a designated repo and AI. Sites are not designed or customized within the RevCent web app, it is solely intended for users to utilize the power of AI to create the exact ecommerce store they want.<br><br>Important: A RevCent Site is completely different than a Shop/Third Party Shop. Third Party Shops are remote independently hosted shopping carts, such as WooCommerce, that are integrated with RevCent. A RevCent Site is a fully customizable site hosted by RevCent that allows you to have full control via GitHub repo access.<br><br>Use the API to get a list of sites, get a single site by ID, create a new site, update an existing site and delete a site.","x-kb-link":"https://kb.revcent.com/tools/ai/sites","x-kb-name":"Sites","x-md-link":"markdown/mcp/operation/OverviewSite.md","x-ai-q":"Tell me how I can deploy and fully customize my own RevCent site for my ecommerce business and sell items online using AI."},{"name":"SMTP Messages","description":"An SMTP message is created automatically by configured RevCent events or through the API.<br><br>Use the API to get a list of SMTP messages, get a single SMTP message or send a SMTP message.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewSMTPMessage.md","x-ai-q":"Tell me how SMTP messages work in RevCent and how they can help my ecommerce business manage email communications effectively."},{"name":"SMTP Profiles","description":"A SMTP profile is created to define the settings for sending SMTP messages.<br><br>Use the API to get a list of SMTP profiles, get a single SMTP profile by ID, create a new SMTP profile, update an existing SMTP profile, and delete an SMTP profile.","x-kb-link":"https://kb.revcent.com/en/integrations/smtp/smtp-profile","x-kb-name":"SMTP Profiles","x-md-link":"markdown/mcp/operation/OverviewSMTPProfile.md","x-ai-q":"Tell me how SMTP Profiles work in RevCent."},{"name":"Subscriptions","description":"A subscription is created during a sale in which a product with an attached subscription profile is sold. Subscriptions are their own entity and are automatically renewed by RevCent according to the subscription profile.<br><br>Use the API to get a list of subscriptions created during a specified date range, get a single subscription by ID, activate a subscription, suspend a subscription, cancel a subscription, renew a subscription and get subscriptions specific to a customer.","x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscriptions","x-md-link":"markdown/mcp/operation/OverviewSubscription.md","x-ai-q":"Tell me how subscriptions work in RevCent and how they can help my ecommerce business manage recurring revenue effectively."},{"name":"Subscription Profiles","description":"A subscription profile is created to define the settings for managing subscriptions.<br><br>Use the API to get a list of subscription profiles, get a single subscription profile by ID, create a new subscription profile, update an existing subscription profile, and delete a subscription profile.","x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Profiles","x-md-link":"markdown/mcp/operation/OverviewSubscriptionProfile.md","x-ai-q":"Tell me how subscription profiles work in RevCent and how they can help my ecommerce business manage subscriptions effectively."},{"name":"Subscription Renewals","description":"A subscription renewal is created when a subscription is renewed either manually or automatically by RevCent.<br><br>Use the API to get a list of subscription renewals created during a specified date range, get a single subscription renewal by ID, refund a subscription renewal and get subscription renewals specific to a customer.","x-kb-link":"https://kb.revcent.com/en/revenue/subscription","x-kb-name":"Subscription Renewals","x-md-link":"markdown/mcp/operation/OverviewSubscriptionRenewal.md","x-ai-q":"Tell me how subscription renewals work in RevCent and how they can help my ecommerce business manage recurring revenue, and recover overdue subscriptions, effectively."},{"name":"Tax","description":"A tax is created during a sale, subscription renewal or trial expiration when either a tax entry is provided or a tax profile is used to calculate tax.<br><br>Use the API to get a list of tax created during a specified date range, get a single tax by ID, refund a tax, get tax specific to a customer and retrieve, create, edit or delete tax profiles.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewTax.md","x-ai-q":"Tell me how taxes and tax profiles work in RevCent and how they can help my ecommerce business manage tax calculations and compliance effectively."},{"name":"Third Party Integrations","description":"A third party integration is created to define the settings for integrating RevCent with external services.<br><br>Use the API to get a list of third party integrations, get a single site or user third party integration by ID, create a new user third party integration, update an existing user third party integration, and delete a user third party integration.","x-kb-link":"https://kb.revcent.com/en/integrations/third-party/third-party-integration","x-kb-name":"Third Party Integrations","x-md-link":"markdown/mcp/operation/OverviewThirdPartyIntegration.md","x-ai-q":"Tell me how I can integrate my ecommerce business operations with any third party, either natively in RevCent, or custom integrations using RevCent functions."},{"name":"Tracking","description":"Utilize both tracking domains and URL parameter sets to monitor visitor activity with enhanced DNS first party cookies.<br><br>Use the API to get a list of tracking domains, get a single tracking domain by ID, create a tracking domain, modify a tracking domain, delete a tracking domain, get a list of URL parameter sets, get a single URL parameter set by ID, create a URL parameter set, modify a URL parameter set and delete a URL parameter set.","x-kb-link":"https://kb.revcent.com/tracking/revcent-trackjs","x-kb-name":"Tracking","x-md-link":"markdown/mcp/operation/OverviewTrackingDomain.md"},{"name":"Transactions","description":"A credit card transaction is created during a sale with a credit_card payment type or when a pending refund is completed with a payment processor.<br><br>Use the API to get a list of transactions created during a specified date range, get a single transaction by ID, refund a transaction, get transactions specific to a customer and search all transactions.","x-kb-link":"https://kb.revcent.com/en/payments/credit-card/transaction","x-kb-name":"Transactions","x-md-link":"markdown/mcp/operation/OverviewTransaction.md","x-ai-q":"Tell me how transactions work in RevCent and how they can help my ecommerce business manage payment processing effectively."},{"name":"Trials","description":"A trial is created during a sale in which a product with a trial period is sold. Trials are their own entity and are automatically expired with payment by RevCent on each trials' expiration date.<br><br>Use the API to get a list of trials created during a specified date range, get a single trial by ID, extend a trial, shorten a trial, cancel a trial, expire a trial and get trials specific to a customer.","x-kb-link":"","x-kb-name":"","x-md-link":"markdown/mcp/operation/OverviewTrial.md","x-ai-q":"Tell me how trials work in RevCent and how they can help my ecommerce business offer trial periods to customers effectively."}],"servers":[{"url":"https://api.revcent.com/v2"}],"info":{"contact":{"email":"contact@revcent.com","name":"RevCent","url":"https://revcent.com"},"description":"The RevCent V2 REST API. Visit https://revcent.com/docs/api/v2 for details.","termsOfService":"https://revcent.com/terms-and-conditions","title":"RevCent API V2","version":"03-02-2024"},"security":[{"RevCentAPIKey":[]}],"openapi":"3.1.0"}
