Working with Reports
As part of the daily accounting cycle, Earn API publishes reports. Partners need to access reports to sync interest transactions and to implement automated daily settlements.
Access reports with the following steps:
Get the list of available reports by calling
GET /v1/reports?type=Report.If new reports are available, call
GET /v1/reports/{reportId}/download-uri.Download the report from the URL returned in step 2.
β οΈ Deprecation notice.
FullTransactionJournalandIncrementalTransactionJournalreport types are deprecated and will be removed in future releases. Always request the report list usingGET /v1/reports?type=Report.
Daily settlements
As part of the integration process, Tesseract and the partner exchange wallet addresses for each currency. The partner is expected to transfer the outstanding balance every day to the wallet addresses received from Tesseract. Tesseract likewise settles daily to the wallet addresses received from the partner.
Visibility into the direction and amount of the outstanding balance and the expected crypto transfer is available in the daily report per currency under balances[].outstandingBalance. The direction depends on the sign: a negative value means the partner is to settle towards Tesseract.
For example, if Tesseract owes 32.532298176173658034 BTC to the partner and the partner owes 48.399149760390872272 SOL to Tesseract, the corresponding settlements are expected to happen within the next day.
Transaction sync
An important function of the accounting cycle is to distribute interest to all user accounts. Distributed interest entries are available in the report under the transactions[] array with type === "Interest". Partners are expected to sync these entries for displaying to end users and for calculating per-account balances.
Example interest entry:
{
"id": "d5266ad5-b724-4fce-9de0-27505317881d",
"type": "Interest",
"currency": "XRP",
"amount": "0.000000173182690071",
"createdAt": "2025-03-19T00:01:55.703Z",
"accountingDate": "2025-03-19T00:00:00.000Z",
"meta": {
"productId": "d09f17ff-d527-42e6-8876-83af2fe56df6",
"productName": "XRP Lending",
"accountType": "user",
"accountId": "3a7a9fa9-e6ca-4bf6-b563-ed58cb5d9cbf",
"groupId": "0ab365dd-4fea-4c53-a2fb-65287ae97725",
"userId": "c5640ae3-1b4b-41b0-b63a-6ea58da3fdd7"
}
}Example reports
Reports are available in all environments. The easiest way to get examples is to do some deposits in Development or Test and download real reports from Earn API.
Report schema
The JSON report contains the following fields:
idβ UUID of the report.partnerIdβ UUID of the partner.typeβ the type of the report ("Report").dateFromβ start date of the accounting cycle in UTC+0 ISO date format.dateToβ end date of the accounting cycle in UTC+0 ISO date format.balancesβ list of balance objects per currency:currencyβ Tesseract currency symbol.outstandingBalanceβ balance to be settled after the minimum settlement amount has been taken into account.outstandingTotalβ the complete outstanding balance.accruedReceivablesβ accrued receivables (partner perspective).accruedPayablesβ accrued payables (partner perspective).accountsReceivablesβ accounts receivables (partner perspective).accountsPayablesβ accounts payables (partner perspective).
settlementsβ list of settlement objects per currency:idβ UUID of the settlement.createdAtβ UTC+0 ISO date of settlement creation.currencyβ Tesseract currency symbol.transactionIdsβ UUIDs of transactions associated with the settlement.
productsβ snapshot list of product objects:id,group,name,currency.calculationMethodβ e.g. Fixed, Variable.fixedInterestRateβ string representation (e.g."0.01"= 1% APR or APY).rateTypeβ APR or APY.withdrawalPeriodDays.tiersβ array of{ id, lowerBound, userInterestRate }.
aumβ AUM balance objects per product (deposits, withdrawals, interest, corrections, total amount).transactionsβ list of transaction objects:id,type,currency,amount(18-decimal string).createdAt,accountingDateβ UTC+0 ISO dates.metaβ metadata object whose properties vary by transaction type.
Transaction types
User accounts:
Depositβ deposit to an account.Withdrawalβ withdrawal from an account.Interestβ interest distributed to an account.NegativeInterestβ negative interest distributed to an account.Marginβ margin distributed to an account.Feeβ fees distributed to the account.
Partner account:
SettlementIn/SettlementOutβ requested settlement booked to outstanding balances.TransferIn/TransferOutβ money recorded as received in the outstanding balances account.
Corrections:
DepositCorrection,InterestCorrection,WithdrawCorrection,NegativeInterestCorrection,MarginCorrection,FeeCorrection,TransferInCorrection,TransferOutCorrection.
Last updated
Was this helpful?
