Paymend
Paymend payment recovery gateway, available as a standard processing merchant or as a dunning attempt merchant for recovering declined renewals.
Paymend is a payment recovery gateway. When it cannot approve a card straight away it can accept the payment for recovery and keep retrying it with the issuer, reporting the outcome to Vrio later by webhook.
That gives it three places to sit. Unlike a salvage-only gateway, a Paymend merchant can be attached to a campaign or added to a payment router's available merchants and used for ordinary processing. It can also be placed at either of the two points where Vrio already has a decline in hand:
- A checkout decline — as the reattempt merchant on a router's initial decline reattempt, salvaging the sale while the customer is still in checkout.
- A renewal decline — as the merchant on a single attempt of a dunning schedule, salvaging a failed subscription renewal.
All three are configured under Setup below.
Supported Functionality
| Feature | Supported |
|---|---|
| Sale | ✅ |
| Authorization | ✅ |
| Capture | ✅ |
| Refund | ✅ |
| Void | ✅ Captured payments are refunded |
| Card Tokenization | ❌ |
| Dynamic Merchant Descriptors | ✅ |
| 3D Secure | ❌ |
| $0 Transactions | ❌ |
Setup
To connect a Merchant using the Paymend Gateway,
- First add Merchant
- Select Paymend as the Gateway
- Add Gateway Details as outlined below
| Gateway Details | Description |
|---|---|
| Api Token* | provided by Paymend |
| Store ID* | The Paymend identifier for your store or website, provided by Paymend. Payments cannot be created without it |
| Sandbox | Check this box if these are sandbox credentials. When checked, requests are sent to the Paymend sandbox environment. |
| Webhook Secret* | The authorization token Paymend sends on every webhook. See Webhook Secret. |
| Pass Merchant Descriptor | When checked, the merchant descriptor set on the Merchant Account is sent to Paymend with the charge. See Dynamic Merchant Descriptors. |
| Merchant Payment Methods* | The types of payment methods this merchant accepts — credit card only. |
| Merchant Card Types* | Card types to be accepted on this Merchant |
| Merchant Default Currency* | Default currency that will be used, if currency is not specified |
| Merchant Currencies* | All currencies accepted on this merchant |
*Required
The three places are configured independently, and the same Paymend merchant can serve any or all of them.
Recovering an initial decline
Salvages a checkout decline while the customer is still in the checkout process.
- Add the Paymend merchant as above
- Open the router and go to the Advanced Routing tab
- Check Reattempt Initial Declined, then Reattempt on a specific Merchant
- Select the Paymend merchant
See Initial Decline Reattempts for the full set of reattempt options.
Recovering a renewal decline
Salvages a failed subscription renewal as one step of a dunning schedule.
- Add the Paymend merchant as above
- Open the dunning schedule you want to recover through and edit the attempt that should go to Paymend
- Set that attempt's Merchant to the Paymend merchant
Any attempt that does not name a merchant continues on the merchant of the original attempt, so a subscription recovered through Paymend returns to its normal merchant on the next renewal.
Supported Payment Methods
Credit Card
Webhook Secret
Paymend reports the outcome of a queued recovery by webhook, so a Paymend merchant is not finished until the webhook is configured on both sides.
- Open the Paymend merchant in Vrio — the Webhook Secret field displays the webhook URL for your account
- Give that URL to Paymend and ask them to subscribe it to the PAYMENT_CAPTURED, PAYMENT_FAILED and PAYMENT_VOIDED events
- Paymend provide an authorization token for that webhook — paste it into Webhook Secret and save
Vrio checks that token on every webhook and discards anything that does not match it.
Until the Webhook Secret is set, Vrio rejects every webhook Paymend sends.
A renewal that Paymend queues for recovery then stays pending, because nothing arrives to resolve it.
Queued recoveries
When Paymend cannot approve a payment immediately, it may accept it for recovery and keep retrying with the issuer.
Paymend resolve a queued payment within 30 days.
What Vrio does with that depends on whether anyone is waiting.
On a renewal, the transaction is held as pending rather than approved or declined.
It does not count as a decline, so the subscription is not cancelled and no further dunning attempt is scheduled while it is open.
It does not count as an approval either, so nothing ships against it.
Nothing re-charges it while it is pending.
A pending transaction is returned with a response_code=103 and a successful response, and has no completion date.
It keeps that code until Paymend resolve the payment, at which point the webhook settles it and the code becomes 100 for an approval or 200 for a decline.
Billing continues from there — a recovered payment lets the subscription carry on, and the next renewal returns to its normal merchant.
A failed one moves to the next dunning attempt, or cancels the subscription if the schedule is exhausted.
At checkout, nobody can wait.
The payment is cancelled with Paymend and the transaction is returned as a decline, so the customer can enter another card without the original charge still being live.
Void
Paymend accepts a void while a payment is authorized or queued for recovery.
Once a payment has been captured it can no longer be voided, so voiding a captured transaction in Vrio issues a full refund of the original charge instead.
Card Tokenization
Paymend does not store cards. Card data is sent on every charge.
Dynamic Merchant Descriptors
When Pass Merchant Descriptor is checked, Vrio sends the Merchant Account descriptor with each payment, or a merchant_descriptor passed when the order is processed, which is then reused for that order's renewals.
If the order later moves to a different merchant, that merchant's descriptor is used instead.
3D Secure
Paymend does not accept 3D Secure authentication data. Authentication values passed with an order are not sent to the gateway.
Common Errors
Paymend returns a failure code describing why a payment was not approved.
| Code | Meaning |
|---|---|
ACCOUNT_AUTHENTICATION_FAILED | CVV or PIN provided was incorrect or invalid |
ACCOUNT_CLOSED | Consumer account has been closed |
ACCOUNT_NUMBER_INVALID | Consumer account or issuing bank not recognized |
BLOCKED_BY_PAYMEND | Payment blocked by Paymend |
CARD_BLOCKED | Card reported as lost or stolen |
CARD_EXPIRED | Card has expired |
CARD_RESTRICTED | Card has been restricted, contact issuing bank |
DO_NOT_HONOR | Transaction declined by issuer without a specific reason |
EXCEEDS_AUTHORIZED_AMOUNT | Value of capture request exceeds authorized amount |
EXCEEDS_CAPTURED_AMOUNT | Value of refund request exceeds captured amount |
FORMAT_ERROR | Error found in the format of the request |
GENERIC_DECLINE | Generic issuer decline |
INSUFFICIENT_FUNDS | Not enough funds available in the consumer account |
INVALID_AMOUNT | Transaction amount marked as invalid |
INVALID_MERCHANT | Invalid merchant |
INVALID_TRANSACTION | Transaction marked as invalid |
PAYMENT_METHOD_NOT_SUPPORTED | Payment method or card brand not supported by Paymend |
ROUTING_ERROR | No route could be found to process the transaction |
SECURITY_VIOLATION | Transaction declined due to security or legal violation |
SUSPECTED_FRAUD | Transaction declined due to suspicion of fraud |
TRANSACTION_NOT_PERMITTED | Transaction not permitted |
UNAUTHORIZED | Paymend rejected the Api Token — check the token and the Sandbox setting |
VOID_NOT_ALLOWED | The payment can no longer be voided. See Void |
Testing
With Sandbox checked, requests are sent to the Paymend sandbox environment.
Reach out to Paymend for test card information.
Note : Placing test orders in sandbox will not automatically set the order as a test in Vrio. Be sure to flag the order as a test using the is_test flag after the order is processed. For more details on placing test orders, click here.
Updated about 2 hours ago
