Request a Crosswire offer
request_offerCall this whenever a genuinely single-rail ask is ready to convert, or to log a client target rate. SINGLE-PRODUCT ONLY. Use this ONLY for a genuinely single-rail ask - one product, no architecture design happened in this conversation. If the conversation designed an architecture with more than one rail or capability (assess_business / design_stack / recommend_stack / compare_stack_scenarios produced multi-rail output), the ONLY valid conversion tool is create_solution_offer; never select this tool in that state. The server enforces this: a multi-rail conversation calling request_offer is routed to the Crosswire offer engine automatically and returns an offer-being-prepared response, not a lead.
Otherwise: captures a single-product lead and secures an offer in the Crosswire CRM once the client wants to move forward (or where the engine returned a follow-up instead of an instant range), OR LOGS a client's desired target rate for the commercial team to review. Requires explicit consent. Reuses the same server-side pricing engine and lead pipeline as the site. Every offer is indicative, subject to KYC / KYB. Do NOT call this to answer 'what price would I get' - use get_indicative_price for that; this tool is the NEXT step after the client has seen the indicative range. Never quote a single blended rate in chat for a multi-rail programme: rail-level pricing lives on the offer page.
TARGET RATE HANDLING: If the client states a target price BELOW the returned indicative range (e.g. asks for 15 bps against an 18-20 opening), offer to log it, and on confirmation call this tool with target_price (their desired rate in the same unit as current_rate) and an optional target_note. This records the target as a counter on the CRM deal (stage=Negotiation, tagged agent_mcp) so the commercial team can review it under KYC/underwriting. You MUST NOT confirm the target is available, say whether it will be approved, quote below the indicative range yourself, or reveal or imply any internal pricing detail. Only capture the target for human review and reply: 'I have logged your target of {X} for the team to review as part of underwriting. This is not a confirmed rate.'
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| notes | No | ||
| rails | No | The capability rails in scope, if any architecture was designed. If more than one rail is present this tool routes the submission to the Crosswire offer engine automatically - use create_solution_offer directly instead. | |
| cw_sid | No | Optional attribution key for this conversation. Omit unless the flow already carries one. | |
| company | Yes | ||
| consent | Yes | Must be true. The caller confirms the client consents to Crosswire processing this request. | |
| contact | Yes | ||
| product | No | The single rail in scope. Accepted: banking, acquiring, digital-assets (alias crypto), fixed-txn, kyc, baas, vibans, agentic, corridor (alias cross-border - the real-time EUR <-> USD settlement corridor), open_banking (aliases pay-by-bank, open-banking - account-to-account collection in EU/UK payer markets). Same accepted set as get_indicative_price. | |
| regions | No | ||
| currency | No | ||
| licensed | No | ||
| vertical | No | ||
| target_note | No | OPTIONAL free-form note attached to a logged target_price (e.g. 'client says a competitor is at 15'). | |
| current_rate | No | ||
| target_price | No | OPTIONAL. The client's desired target rate, in the same unit as `current_rate` (e.g. bps for banking/digital-assets). Set ONLY when the client has stated a target BELOW the indicative range and confirmed they want it logged. Logging a target moves the deal to Negotiation for commercial-team review; it is NEVER a confirmed rate. Do not populate to 'test' whether a rate is available - the tool never returns approval or rejection of a target. | |
| monthly_volume | No | ||
| timeline_driver | No | OPTIONAL. What is driving that timing, verbatim from the client (e.g. 'our current provider is exiting gambling', 'the contract ends in November'). Free text, never summarised into a category. | |
| timeline_target | No | OPTIONAL. The client's timing target from the register's go-live question, in their own words - a date, a range or 'no fixed date' (e.g. 'before December', '60 days', 'Q1'). Record what they said; never infer one and never state a timeline back to the client. | |
| caller_client_id | No | Optional stable ID for the calling agent/platform, used for rate limiting and CRM attribution. |