Skip to content

Commit 2fd1a5e

Browse files
authored
Merge pull request #18 from wegift/ptc-and-playground
Add docs for PTC and playground PTC redemption
2 parents 62efae7 + b3db3cc commit 2fd1a5e

File tree

6 files changed

+245
-130
lines changed

6 files changed

+245
-130
lines changed

docs.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
"source": "https://brand-assets.runa.io/design-system/fonts/f37lineca/F37Lineca-Bold.woff2"
2121
}
2222
},
23+
"styling": {
24+
"eyebrows": "breadcrumbs"
25+
},
2326
"navigation": {
2427
"tabs": [
2528
{
@@ -61,7 +64,16 @@
6164
"features/limiting-available-products",
6265
"features/user-redemption-templates",
6366
"features/merchant-selection-template",
64-
"features/embedded-fx"
67+
"features/embedded-fx",
68+
{
69+
"group": "Pay to Card",
70+
"icon": "boxes-stacked",
71+
"pages": [
72+
"features/pay-to-card/introduction",
73+
"features/pay-to-card/testing",
74+
"features/pay-to-card/support"
75+
]
76+
}
6577
]
6678
},
6779
{

features/pay-to-card.mdx

Lines changed: 0 additions & 129 deletions
This file was deleted.
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
title: "Using Pay to Card"
3+
description: "Provide faster access to funds for your recipients by pushing funds to cards."
4+
icon: "credit-card"
5+
---
6+
7+
Powered by Visa Direct and Mastercard Send, Runa Pay to Card is the fastest and simplest way to send funds directly to your recipients' bank account.
8+
9+
Pay to Card facilitates instant transfers to other accounts, powering use cases like gig worker payments, rewards, incentives, insurance claims, corporate rebates, payroll, government aid, and reimbursements.
10+
11+
<Info>
12+
To get access to Pay to Card, please reach out to your Account Manager or
13+
email support@runa.io.
14+
</Info>
15+
16+
## Fetching the Pay to Card products
17+
18+
Retrieve the Pay to Card products using the [product list endpoint](/reference/2024-02-05/endpoint/products/list). You can identify these products by the `payout_type` field, which will be set to `payment`. Each Pay to Card product supports a specific currency and country. You can refer to the [product listing guide](/features/product-catalog) for more information on this endpoint.
19+
20+
```json title="Pay to Card product example, fields truncated for brevity" icon="file" expandable
21+
{
22+
"code": "P2C-US",
23+
"name": "Pay To Card US",
24+
"currency": "USD",
25+
"state": "LIVE",
26+
"payout_type": "payment",
27+
"is_orderable": true,
28+
"availability": "realtime"
29+
}
30+
```
31+
32+
## Placing a Pay to Card order
33+
34+
To make an order for a payment you simply specify the Pay to Card product code for the currency and country you wish to send funds in.
35+
36+
For our example, we will be using the `P2C-US` product code for a $10 payment to a recipient. The payment will be sent to the recipient's email address via the `EMAIL` distribution method.
37+
38+
```http title="Example pay to card order" icon="globe" expandable
39+
POST https://api.runa.io/v2/order
40+
Content-Type: application/json
41+
X-Api-Key: <your API key>
42+
43+
{
44+
"payment_method": {
45+
"type": "ACCOUNT_BALANCE",
46+
"currency": "USD"
47+
},
48+
"items": [
49+
{
50+
"face_value": 10,
51+
"distribution_method": {
52+
"type": "EMAIL",
53+
"email_address": "<your recipient's email address>"
54+
},
55+
"products": {
56+
"type": "SINGLE",
57+
"values": ["P2C-US"]
58+
}
59+
}
60+
]
61+
}
62+
```
63+
64+
### Distribution methods
65+
66+
In the example above we used the `EMAIL` distribution method to send the payment to the recipient's email address.
67+
68+
- You can also use the `RECIPIENT` distribution method to send the payment to a known recipient.
69+
- If you want to handle the distribution of the payment link yourself, use the `PAYOUT_LINK` distribution method.
70+
71+
Refer to the [order endpoint reference](/reference/2024-02-05/endpoint/orders/create) for more information on the request schema and other options available.
72+
73+
## Recipient redemption experience
74+
75+
<img className="block dark:hidden" src="/assets/graphics/p2c-flow-light.png" />
76+
<img className="hidden dark:block" src="/assets/graphics/p2c-flow-dark.png" />
77+
78+
When a recipient opens the payment link, they will be guided through the following flow on their first redemption:
79+
80+
1. Enter their email address to authenticate
81+
2. Securely enter their card details
82+
3. Receive funds in their bank account
83+
84+
For a returning recipient, they will only need to enter their email address to authenticate. The previously used card details are saved for future redemptions.
85+
86+
## Next steps
87+
88+
<CardGroup cols="2">
89+
<Card title="Testing" icon="flask" href="/features/pay-to-card/testing">
90+
Test out the pay to card redemption journey in our playground environment.
91+
</Card>
92+
<Card title="Support" icon="circle-info" href="/features/pay-to-card/support">
93+
Read through the potential failure scenarios and suggested resolution for
94+
each.
95+
</Card>
96+
</CardGroup>

features/pay-to-card/support.mdx

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: "Support"
3+
description: "Potential error scenarios for Pay to Card and their resolution."
4+
icon: "circle-info"
5+
---
6+
7+
We've categorized potential errors into three distinct areas, and for each, we've developed specific contingency plans and operational procedures.
8+
9+
## Recipient errors
10+
11+
These are errors that can be self-corrected by your recipients.
12+
13+
### Payment details
14+
15+
1. Issue with the card number
16+
- Recipient will see the error message: `The card number you have entered is incorrect.`
17+
2. Card is unsupported
18+
- Recipient will see the error message: `The card you have entered is not supported. Please use a Visa or Mastercard debit card.`
19+
20+
21+
## Order errors
22+
23+
These are the errors that will require your input to resolve
24+
25+
### Recipient ineligible
26+
27+
1. Payments cannot be sent to anyone under 18 years old.
28+
- Recipient will see the error message: `We cannot send funds to anyone under the age of 18.`
29+
2. Payments cannot be sent to anyone who appears on a sanctions list.
30+
- Recipient will see the error message: `There's been an unexpected issue, please contact the issuer of this link.`
31+
- Runa will send you an email to inform you that this has happened, with our reasoning attached.
32+
3. Card issue
33+
- Payment sent to a recipient who doesn't have an eligible debit card with Visa/Mastercard.
34+
- Recipient will see the error message: `We can only send funds to a Visa or Mastercard debit card.`
35+
36+
In these cases, we recommend cancelling the payout link by logging into your Runa portal. Please use an alternate payout mechanism to transfer the funds to your recipient.
37+
38+
## Processing errors
39+
40+
### In-journey errors
41+
42+
1. Authentication error: Recipient hasn't received email with code, or the code is not working
43+
- Recipient will need to contact Runa for us to investigate what might have gone wrong with authentication.
44+
2. Fraud Suspected
45+
- If fraud is suspected, we will hold on sending out the payout until we have established that the payment is genuine. During this time, we will either ask the end recipient to share additional information, or we will have to cancel the payment and inform you that it's been cancelled with a reason as to why.
46+
3. Recipient bank has rejected payment
47+
- The most common payment issue we are likely to experience is the recipient's bank rejecting the payment we send them. If this happens, we will send the recipient an email to say their bank has rejected the payment, with advice to either resolve this with their bank or try a different card.
48+
49+
## All other issues
50+
51+
Your point of contact for any other issues: support@runa.io

features/pay-to-card/testing.mdx

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: "Testing"
3+
description: "Steps to simulate different pay to card redemption scenarios in playground."
4+
icon: "flask"
5+
---
6+
7+
The Pay to Card redemption journey requires a few steps from the recipient. To test this journey in the playground environment, you can use the following steps.
8+
9+
<Info>
10+
For testing and simulating errors during placing of the order, refer to the
11+
[playground reference section](/docs/playground).
12+
</Info>
13+
14+
Here's a high level summary of the Pay to Card redemption journey:
15+
16+
<img className="block dark:hidden" src="/assets/graphics/p2c-flow-light.png" />
17+
<img className="hidden dark:block" src="/assets/graphics/p2c-flow-dark.png" />
18+
19+
You're able to walk through each step of the journey in the playground environment.
20+
21+
<Info>
22+
**Email delivery of links for orders is disabled in the playground environment by
23+
default**
24+
25+
Every order via API will always return a link in the `payout.url` field
26+
that you can use to access the redemption journey. See the [playground
27+
reference](/docs/playground) for more information.
28+
</Info>
29+
30+
## Testing the redemption journey
31+
32+
After placing the order, you can access the redemption journey by following the link in the `payout.url` field of the API response.
33+
34+
### Email verification
35+
36+
Playground supports email verification via one time code, just like our live environment.
37+
38+
You can test both successful and error cases by trying scenarios such as:
39+
40+
1. Correct email and code.
41+
2. Incorrect code.
42+
43+
### Billing address and card details
44+
45+
<Warning>
46+
Never enter your real address or card details on playground links.
47+
</Warning>
48+
49+
There is no billing address validation in the Playground environment, so you can use any dummy address.
50+
51+
The playground environment only works with a specific set of cards. Use the following cards to trigger different scenarios.
52+
53+
1. Valid card details
54+
55+
Use the following details to trigger a success response:
56+
57+
Card Number: `4111 1111 1111 1111`
58+
59+
CVV, Expiry Date, and Cardholder name: any values
60+
61+
2. Card details for validation error
62+
63+
Any incorrect card should immediately trigger an error (example below):
64+
65+
Card Number: `4111 1111 1111 1112`
66+
67+
CVV, Expiry Date, and Cardholder name: any values
68+
69+
### The returning recipient case
70+
71+
A returning recipient will already have their card and other details saved.
72+
73+
To simulate a returning recipient experience in the Playground environment, append `+repeat` to the username part of your email address.
74+
75+
For example, if your email is `user@example.com`, use `user+repeat@example.com`.
76+
77+
You will still receive the one-time code in your usual inbox.
78+
79+
### Support
80+
81+
If you face any issues while testing, feel free to contact your account manager or Runa support at: support@runa.io

reference/2024-02-05/playground.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ Some errors cannot be triggered in playground through incorrect formatting or re
138138
| `insufficient_funds` | The account balance you're trying to use to pay for your order does not have enough funds. |
139139
| `internal_server_error` | An unknown error occurred in our services. |
140140

141+
## Redemption experience
142+
143+
You should be able to test the basic redemption experience for most product types in the Playground. While we can’t guarantee a like-for-like match with the production redemption experience—due to inherent limitations in testing financial products—we make our best effort to keep the experience as consistent as possible.
144+
141145
## Continuous improvement
142146

143147
We are continuously enhancing the Playground environment to better serve your needs for experimenting and testing integrations. Expect ongoing improvements and more features to be added over time.

0 commit comments

Comments
 (0)