An IVR payment lets a caller pay inside an automated call flow, with no agent on the line. On SignalWire, that payment step is the <Pay> verb in cXML, or the pay method in SWML.
Shuttle is building a SignalWire connector, similar to our Twilio connector. It is not available yet and there is no release date.
For the general picture of IVR payments, see our IVR payments guide. This guide covers how the payment step works on SignalWire.
Where the Pay Step Goes in an IVR Flow
In a SignalWire call flow, the payment is one step. The flow plays its prompts, works out the amount, and then runs <Pay> in cXML, or the pay method in SWML. SignalWire's cXML reference describes the <Pay> verb as enabling payment processing during voice calls.
Per SignalWire's documentation:
The caller keys their card on the phone keypad. In cXML and SWML, SignalWire supports keypad (DTMF) input only.
You set the amount. In cXML,
chargeAmounttakes the amount to charge. Set it to 0, or leave it out, and the request becomes a tokenise request instead of a charge.Attempts are limited. In cXML,
maxAttemptssets the maximum number of retry attempts. It accepts 1, 2 or 3, and the default is 1. SWML hasmax_attempts, which SignalWire describes as the number of attempts the caller gets to enter each payment detail.Callers can submit early or cancel. In SWML, pressing
#submits early and*cancels.
Handling the Result
In cXML, when the step ends SignalWire posts a PayResult to your action URL, and the response sets the next cXML. The values include:
success
too-many-failed-attempts
payment-connector-error
caller-interrupted-with-star
caller-hung-up
validation-error
internal-error
So an IVR flow needs a branch for each outcome that matters: confirm the payment on success, offer another try or an alternative after repeated failures, and handle a caller who cancels or hangs up. SignalWire's cXML reference also says the status callback payment-completed means the connector returned HTTP 200, not that the payment succeeded, so check PayResult rather than relying on the callback alone.
Who Charges the Card
SignalWire does not charge the card itself. It sends the captured card to a payment connector URL as an HTTPS POST with a JSON body, and expects a charge or token ID back. SignalWire's SWML reference says your server is responsible for charging the payment method.
You can build and host that endpoint yourself.
Shuttle is building a hosted option. Shuttle will host the connector URL that SignalWire calls, so you will not need to run your own endpoint.
Where Shuttle's SignalWire Connector Stands
In build, no date. It is not available to use yet.
Being built for cXML
<Pay>and SWML pay.Any currency. It will support any currency your payment provider supports.
Billed by Shuttle. Shuttle will bill the transactions: $49 per live instance per month, with 245 transactions included, then from $0.20 per transaction, falling with volume. An instance is one payment channel. See pricing for the full model.
We have nothing to say yet on the rest of what it will cover. Shuttle works with Twilio and Telnyx today. Building an IVR on SignalWire? Book a call and tell us about your setup.
For the full picture, see SignalWire payments.
SignalWire IVR Payments FAQ
Can I take IVR payments on SignalWire? In cXML and SWML, SignalWire's pay step has the caller key the card on the keypad. Something at a connector URL has to charge the card.
Can I take IVR payments on SignalWire with Shuttle today? Not yet. The SignalWire connector is in build, with no release date. Book a call and tell us about your setup. Shuttle works with Twilio and Telnyx today.
Does the caller have to type their card number? In cXML and SWML, SignalWire supports keypad input only for the payment step.
What happens if the payment fails? If the step does not end in success, SignalWire sends a different PayResult (for example too-many-failed-attempts or payment-connector-error) to your action URL in cXML, and your flow decides what happens next.
How much will the SignalWire connector cost? Shuttle will bill the transactions: $49 per live instance per month, with 245 transactions included, then from $0.20 per transaction, falling with volume. See pricing.
Related Reading
Running voice on SignalWire? Book a call.
