Skip to content

Report Service API

The Report Service API provides an efficient and secure way to download On-Demand Liquidity (ODL) payment transactions on the RippleNet network.

Report types

Three report types are available in either CSV or JSON format when performing a List reports operation:

Report typeDescription
PAYMENT_OPSThis is a Basic payment report suitable for high-level payment investigation and reporting.
RECONThis is a Reconciliation report suitable for reconciliation and detailed state-by-state investigation.
FAILURE_CONVERSION_SSAThis is a Failure conversion & SSA report suitable for failed payments investigation.

Note: These On-Demand Liquidity (ODL) statement reports do not include data on fiat payments in RippleNet.

Basic payment report

The Basic payment report (PAYMENT_OPS) provides basic payment data, but not the transaction data within payments.

Reconciliation report

The Reconciliation report (RECON) includes all basic payment data, and also includes trade and liquidation data that may be associated with a payment.

A single payment with multiple transactions appears in multiple lines, one line per transaction. Each line includes data that has occurred during the transaction, and all subordinate transactions share the same Payment ID.

Failure conversion & SSA report

The Failure conversion & SSA report (FAILURE_CONVERSION_SSA) includes failed payments data.

Report availability

Reports are available in pre-generated formats for the previous two months and the current month-to-date.

The month-to-date report is generated daily at 00:00 AM (UTC) and is generally available one minute later, at 00:01 AM.

Example: Report availability

On October 16th, you can get:

  • Full month reports for August and September.
  • A month-to-date report from October 1st to October 16th.
MonthExampleDescription
CurrentOctober 1, 2022 to
October 16, 2022 at 00:00 AM
Includes ODL payment data from the first day of the current month up to 00:00 AM (UTC) of the current day.
PreviousSeptember
(If the current month is October)
Includes all ODL payment data for the month preceding the current month.
Month Before LastAugust
(If the current month is October)
Includes all ODL payment data from the month preceding the last month.

API operations

Use these operations to view a list of reports, or download a specific report.

API operationDescription
List reportsView a list of available reports.
Create a reportCreate a report.
Get a reportView a specific report.
Delete a reportDelete a specific report.
Download a reportDownload an individual report in JSON or CSV format.

Authentication

To use any API operation you need a valid access token. You must include a valid access token in the Authorization header of each request.

For more information about getting an access token, see Authentication.

Environments

You can use the Report Service API with the test and production environments by using different base URLs.

EnvironmentBase URLDescription
Testreporting-test.rnc.ripplenet.comTest environment with simulated partners and simulated currency.
Productionreporting.rnc.ripplenet.comProduction environment with actual partners and actual currency.
Languages
Servers
Mock server

https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/

Test environment<br/>Learn about <a href="https://docs.ripple.com/ripplenet/implementation/baseurls/#base-url-by-api-environment" class="api-console-href">API environments</a>

https://reporting-test.rnc.ripplenet.com/

Production environment

https://reporting.rnc.ripplenet.com/

Reports

The Report Service API provides PAYMENT_OPS, RECON, and FAILURE_CONVERSION_SSA reports in either CSV or JSON format.

Operations

Report data fields

View the data fields for the different report types.

Schemas

Scheduler

Operations

Meta data of the scheduler

Request

Security
Bearer
curl -i -X GET \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/metadata \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Returns the JSON record for the scheduler job

Bodyapplication/json
object
Response
application/json
{}

Get Scheduler jobs

Request

Returns a JSON array of jobs in the scheduler.

Security
Bearer
curl -i -X GET \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Returns an array of scheduler jobs.

Bodyapplication/json
jobsArray of objects>= 0 itemsrequired
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobs": [ {} ] }

Delete all jobs of provided tenants

Request

Delete all jobs of provided tenants

Security
Bearer
Query
tenant-idsArray of stringsrequired

comma separated tenants ids

curl -i -X DELETE \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs?tenant-ids=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The jobs have been successfully deleted.

Response
No content

Delete all jobs of out of scope tenants

Request

Delete all jobs of out of scope tenants

Security
Bearer
curl -i -X DELETE \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/out-of-scope \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The jobs have been successfully deleted.

Response
No content

Creates a new scheduler job

Request

Security
Bearer
Body*/*

Parameters defining the scheduler job

jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
curl -i -X POST \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/job \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: */*' \
  -d '[object Object]'

Responses

Returns the JSON record for the posted scheduler job

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

Creates a new scheduler job

Request

Security
Bearer
Body*/*

Parameters defining the scheduler job

jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
curl -i -X POST \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/job/trigger \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: */*' \
  -d '[object Object]'

Responses

Success

Body
Response
No content

Updates chron expression for scheduler jobs

Request

Security
Bearer
Body*/*required

Parameters defining the Scheduler Jobs to perform the cron expression update

jobGroupArray of stringsnon-emptyuniquerequired
jobStatusstring[ 1 .. 128 ] characters
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
cronExpressionstring[ 1 .. 128 ] charactersrequired
curl -i -X PUT \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/cron-expression-update \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: */*' \
  -d '[object Object]'

Responses

Returns an JSON array of updated scheduler jobs.

Bodyapplication/json
jobsArray of objects>= 0 itemsrequired
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobs": [ {} ] }

Get Scheduler Job

Request

Returns a single JSON record of SchedulerJob

Security
Bearer
Path
job-idstring(uuid)required

Unique ID for a scheduler job

curl -i -X GET \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/{job-id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Returns the JSON record of the SchedulerJob specified in the path parameter

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

Updates a existing scheduler job

Request

Security
Bearer
Path
job-idstring(uuid)required

Unique ID for a scheduler job

Body*/*

Parameters defining the requested Scheduler Job

jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
curl -i -X PUT \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/{job-id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: */*' \
  -d '[object Object]'

Responses

Returns the JSON record for the updated scheduler job

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

Delete the scheduler job

Request

Returns a single JSON record of SchedulerJob

Security
Bearer
Path
job-idstring(uuid)required

Unique ID for a scheduler job

curl -i -X DELETE \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/{job-id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

The scheduler job was deleted successfully.

Response
No content

Runs the scheduler job

Request

Security
Bearer
Body*/*

Parameters defining the requested Scheduler Job

jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
curl -i -X POST \
  https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/job-run \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: */*' \
  -d '[object Object]'

Responses

Returns the JSON record for the scheduler job

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

Pauses the scheduler job

Request

Security
Bearer
Path
job-idstring(uuid)required

Unique ID for a scheduler job

curl -i -X POST \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/{job-id}/job-pause' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Returns the JSON record for the paused scheduler job

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

Runs the scheduler job

Request

TBD

Security
Bearer
Path
job-idstring(uuid)required

Unique ID for a scheduler job

curl -i -X POST \
  'https://docs.ripple.com/_mock/products/payments-odl/api-docs/report_service/report_service/internal/scheduler/jobs/{job-id}/job-resumption' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Returns the JSON record for the paused scheduler job

Bodyapplication/json
jobIdstring(uuid)
jobGroupstring[ 1 .. 128 ] charactersrequired
jobNamestring[ 1 .. 128 ] charactersrequired
jobStatusstring[ 1 .. 128 ] charactersrequired
Enum"PAUSED""RESUMED""SCHEDULED""SCHEDULED_STARTED""EDITED_SCHEDULED"
tenantIdstring[ 1 .. 128 ] charactersrequired
jobClassNamestring[ 1 .. 128 ] charactersrequired
cronExpressionstring[ 1 .. 128 ] charactersrequired
descriptionstring[ 1 .. 128 ] charactersrequired
repeatTimeinteger(int64)required
cronJobbooleanrequired
priorityinteger
Response
application/json
{ "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39", "jobGroup": "string", "jobName": "string", "jobStatus": "PAUSED", "tenantId": "string", "jobClassName": "string", "cronExpression": "string", "description": "string", "repeatTime": 0, "cronJob": true, "priority": 0 }

InternalReports

Operations