Receiver testing
RippleNet members that receive payments conduct “receiver tests” by connecting to a Test Harness environment that simulates a payment sender or originator.
Payment receivers use the Test Harness to build and validate their RPO schema. In passive mode, the Test Harness can submit single payments or batch payments. Batch payments are supported in either JSON or CSV format.
Passive mode
Single payment
The Single Payment tab includes one pre-populated payment to send to your RippleNet Server deployment.
When you click Submit Payment with the default values, a quote is automatically requested and accepted; then a payment is created and sent for you to lock or reject.
You can enable Test Harness to automatically settle the payment by enabling "Auto Settle Locked Payments" under the Settings tab.
You can also update the default RPO schema in "Supporting Info" by changing "Default Supporting Info" under the Settings tab.
The Single Payment page includes the following fields:
Attribute | Description | Default Value |
---|---|---|
Sender | Sender RippleNet Address | trans_account@host (configured during provisioning) |
Receiver | Receiver RippleNet Address | username@host (host configured during provisioning, change username to receiver account) |
Amount | Value to send (comma-separated or decimal) | 105 |
Currency | Sender's medium of exchange | sender currency (configured during provisioning) |
Quote Type | Indicates how to calculate payment quotes. Valid values are:
|
SENDER_AMOUNT |
Sending Fee | Fees charged by the sender | 0.02 |
Iterations | Number of times to repeat payment | 1 |
Test Case ID | Arbitrary number to identify test | TC-001 |
Payment Object | Values that populate additional_info or user_info during Accept quote |
{ |
Batch payments
Batch payments can be tested with a payment template set (CSV file) that you upload to Test Harness (under Test Content). To run batch payments, choose from an existing payment Template Set:
Or upload a payment template set CSV file directly into the Batch Payments UI:
Payment template sets are defined in CSV format, which uses commas to separate values. In a payment template set, quote parameters are nested under the quote
object, and the user_info
data is nested under the json
object.
Batch payments must be submitted with the following required fields:
Field | Required | Optional | Description |
---|---|---|---|
test_case_id | x | Arbitrary string to identify test case | |
quote.sending_address | x | Sender's host address | |
quote.receiving_address | x | Receiver's host address | |
quote.amount | x | Amount to send or receive, depending on quote.quote_type | |
quote.currency | x | Sender's medium of exchange | |
quote.quote_type | x | Indicates how to calculate quote values |
Batch payments can also be submitted with the following optional fields:
Field | Required | Optional | Description |
---|---|---|---|
end_to_end_id | x | Any value such as a randomly-generated UUID | |
iterations | x | Number of times to repeat payment/test | |
quote.* | x | Any quote parameter supported by RippleNet (For more information, see Create a Quote Collection in the RippleNet Server API reference) | |
json.* | x | Values that populate additional_info or user_info during Accept quote |
|
resubmission | x | Active Receiver tests only: By default, resubmission=FALSE . To RETRY_ACCEPT a payment, set resubmission=TRUE |
|
sub_id | x | Active Receiver tests only: By default, sub_id=0 . For a RETRY_ACCEPT action, sub_id refers to the next available "resubmission" rows that should be used in ascending order until the payment is LOCKED or no more rows are available |
Caution
The Test Harness is hosted and not a load testing tool.
Below is a CSV file for a sample payment, where <SENDER_HOST>
and <RECEIVER_HOST>
are placeholders:
test_case_id,sub_id,resubmission,end_to_end_id,quote.amount,quote.receiving_address,quote.sending_address,quote.currency,quote.quote_type,quote.custom_fee,json.ChrgBr,json.Cdtr.StrdNm.FirstNm,json.Cdtr.StrdNm.LastNm,json.CdtrAcct.Id.Othr.Id,json.CdtrAgt.FinInstnId.ClrSysMmbId.MmbId,json.Dbtr.PstlAdr.AdrLine[0],json.Dbtr.PstlAdr.AdrLine[0],json.Dbtr.PstlAdr.Ctry,json.Dbtr.PstlAdr.CtrySubDvsn,json.Dbtr.PstlAdr.PstCd,json.Dbtr.PstlAdr.TwnNm,json.Dbtr.StrdNm.FirstNm,json.Dbtr.StrdNm.LastNm,json.PmtTpInf.CtgyPurp.Prtry
2.2,0,FALSE,RANDOM_NODASH_UUID,220,<RECEIVER_HOST>,<SENDER_HOST>,USD,sender_amount,1,CRED,Michael,Scott,12345678,BAD666,Dunder Mifflin Paper,1725 Slough Avenue Ste 200,USA,PA,18503,Scranton,Bob,Vance,DMINFINITY
Payments within a single batch can have different RPO structures. In this case, the header row is a superset for all payments in the batch. If a payment does not use one of the fields in the header row, that slot should be left blank, for example: value1,value2,,value4
.
JSON batch format
For quick testing, you can send a batch of default test payments based on a JSON-formatted payment template set. You can paste your own JSON payments over the existing defaults:
This is one of the default payments in the array, where <SENDER_HOST>
and <RECEIVER_HOST>
are placeholders:
{
"test_case_id": "RNTC-1.2",
"end_to_end_id": "RANDOM_NODASH_UUID",
"iterations": 1,
"json": {
"new_rpo_field": "description of new field"
},
"quote": {
"sending_address": "<SENDER_HOST>",
"amount": "100",
"receiving_address": "<RECEIVER_HOST>",
"custom_fee": "5",
"currency": "USD",
"quote_type": "SENDER_AMOUNT"
}
}
Active mode
Payment receiving institutions can create an active test one of two ways: by selecting a pre-loaded test profile and payment template set or by uploading a RippleNet project workbook which generates these artifacts.
Test profiles
To create an active mode test with a test profile, you first upload a test profile and payment template set under test content. Then you select the profile and payment set when creating the test.
Active tests are dependent on test case IDs matching in the profile and payment set. For example, if your test profile defines three test case IDs (1.01, 1.02, and 1.03), and you use the following (truncated) payment set, tests 1.01 and 1.02 run with the DEFAULT
payment data as nothing is defined for 1.01 and 1.02. Test Case 1.03 uses the payment record with the matching ID.
test_case_id,sub_id,type,end_to_end_id,quote.amount, ...
DEFAULT,0,ORIGINAL,RANDOM_NODASH_UUID,1000, ...
1.03,0,ORIGINAL,RANDOM_NODASH_UUID,103, ....
For details, see Run active mode receiver tests.
Project workbooks
You can generate a test profile and payment template by importing a spreadsheet (RippleNet Project Workbook) with test data. You can also create a test on-the-fly with this data and either save it or run it.
Create project workbook
Your project workbook must have one tab that defines the RPO fields (per currency and corridor) and one that defines payment values.
-
Copy and paste the RPO and payment sample data below into a spreadsheet and save locally as
THWB Receiver Test Data (US R123).xlsx
. -
Edit the payment data by replacing
<RECEIVER_ADDRESS>
and<SENDER_ADDRESS>
with the proper sending and receiving RippleNet addresses. -
Copy and paste and save the test profile locally as
thwb_recvtest_test_profile_R123.json
RPO Fields
| RPO Grouping | RPO Field | Ripple Field Definition (for latest refer to RNR documentation) | Type | Maximum Length | Required | Condition (if any) | Format | Supported Values | Error Codes (ISO20022) | Valid Data | Invalid Data | Non-Compliant Data| Example / Sample Value |EXPORT TO JSON |
|:---------------|:-----------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:---------------|:-------------|:------------------------------------------------------------------|:------------------------------------------|:------------------|:--------------------------|:--------------------------|:------------------|:------------------|:--------------------------|:--------------|
| | end_to_end_id | Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. | String | 128 | Mandatory | | Payment reference | | A0110 | ABC123 | Invalid_E2E | NonComp_E2E | ABC123 | Mandatory |
| | Cdtr.Nm | Name by which the party is known and which is usually used to identify the party. | String | 50 | Mandatory | | Full name of individual or organization | | RN0013 | John Arthur Doe | InValid_Nm | NC_Nm | John Arthur Doe | Mandatory |
| | Cdtr.CtryOfRes | Country of Residence of the individual or organization | String | 2 | Mandatory | | ISO 3166-1 alpha-2 | | XC0149 | DE | InVal_Ctry | NC_Ctry | DE | Mandatory |
| | CdtrAcct.Id.IBAN | Holds the IBAN for the account | String | 31 | Mandatory | | IBAN | | RN0000 | DE91100000000123456789 | Invalid_IBAN | NC_IBAN | DE91100000000123456789 | Mandatory |
| | CdtrAgt.FinInstnId.BICFI | Code allocated to a receiving institution by the ISO 9362 Registration Authority as described in ISO 9362 "Banking - Banking telecommunication messages - Business identifier code (BIC)" | String | 11 | Mandatory | | SWIFT code | | RN0013 | DEUTDEFF | TR_BIC | OS_BIC | DEUTDEFF | Mandatory |
| | UltmtDbtr.PstlAdr.AdrLine | Information that locates and identifies the address for the party. | Array | 256 | Mandatory | Combined length of address lines cannot exceed 256 characters. | | | XC0149 | SG_ULT_DBT_ADDR | TR_ULT_DBT_ADDR | OS_ULT_DBT_ADDR | | Mandatory |
Payment Template
| test_case_id | end_to_end_id | quote.amount | quote.sending_address | quote.receiving_address | quote.currency | quote.quote_type | quote.custom_fee |
|:-------------|:-------------------|:-------------|:----------------------|:------------------------|:---------------|:--------------------------|:-----------------|
| default | RANDOM_NODASH_UUID | 1000 | <SENDER_ADDRESS> | <RECEIVER_ADDRESS> | USD | sender_amount | 0.01 |
| R1 | | 111 | | | | sender_institution_amount | 10 |
| R2 | | 112 | | | | | 10 |
| R3 | | 103 | | | | | 0 |
Test Profile
Create workbook test
- Log on to the Test Harness that sends payments (to run your receiver tests).
- Click Receiver Tests > Active Mode .
-
Click
New Test
to open a popup and select
From Project Workbook
.
- In the dialog, select the Workbook, RPO tab, Payments tab, and Test Profile.
-
Click
Download Test Files
to download a Test Profile with one test per RPO field (in this case 16) and a Payment Template file in
.csv
format. - Click Save Test to save the test for future runs.
- Click Run Test to run the test.
One or more tests are created per RPO field. The workbook data included here generates 16 tests.