/get_transactions

Gets array of user handle's ACH Debit transactions (issue_sila), ACH Credit transactions (redeem_sila), and Digital Wallet to Digital Wallet (transfer_sila) transactions with detailed status information.

Requests

The request body at this endpoint is the get_transactions_msg JSON object.

The search_filters object and all of its nested keys are optional. They can be used to filter the transactions that are returned.

Results are paginated; by default, the first 20 results are returned in descending order of date transaction was started. You can request up to 100 results per page ("per_page": 100) and sort them in ascending order of the date the transaction was started ("sort_ascending": true) if desired.

The page and per_page keys can instead be specified in query parameters (e.g. by appending ?page=2&per_page=2 or ?per_page=100 to the end of the URL). If these keys are already specified in the request body, the request body keys take precedence. This allows a requester to fetch several pages using the same signatures if desired.

The auth signature header is required for this request. The user signature header was recently made optional if you would like to get transactions for all users. If you choose to omit the user signature header, you'll also need to omit the user_handle from the Header object.

For other endpoints, the reference key may be omitted from the Header object or be null. However, it is required to exist in the Header and not be set to null for the get_transactions endpoint.

Note - We recently renamed the field auth_handle to app_handle. For backward compatibility, auth_handle is still valid but has been removed from our documentation.

POST /0.2/get_transactions HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
usersignature: [GENERATED USERSIGNATURE HEX STRING HERE] #optional
Content-Type: application/json

{
  "header": {
    "created": 1234567890, 
    "app_handle": "handle.silamoney.eth", 
    "user_handle":"user.silamoney.eth", 
    "version": "0.2", 
    "crypto": "ETH", 
    "reference": "<your unique id>"
  }, 
  "message": "get_transactions_msg",
  "search_filters": {
    "transaction_id": "some UUID string assigned by Sila",
    "reference_id": "the reference string sent in the header object when transaction request was made",
    "show_timelines": true,
    "sort_ascending": false,
    "max_sila_amount": 1300,
    "min_sila_amount": 1000,
    "statuses": ["queued", "pending", "pending_confirmation", "reversed", "failed", "success", "rollback", "review"],
    "start_epoch": 1234567860,
    "end_epoch": 1234567891,
    "page": 1,
    "per_page": 20,
    "transaction_types": ["issue", "redeem", "transfer"],
    "bank_account_name": "the name of the bank account",
    "blockchain_address": "blockchain address of the wallet",
    "processing_type": "INSTANT_SETTLEMENT",
    "payment_method_id": "any payment method id from get_payment_methods"

  }
}

***

HTTP/1.1 200 OK

{
    "success": true,
    "status": "SUCCESS", 
    "reference": "<your unique id>",
    "response_time_ms": "171", 
    "page": 1,
    "returned_count": 3,
    "total_count": 3,
    "pagination": {
        "returned_count": 3,
        "total_count": 3,
        "current_page": 1,
        "total_pages": 1
    },
    "transactions": [
        {
            "user_handle": "user",
            "reference_id": "",
            "transaction_id": "12345678-abcd-1234-abcd-1234567890aa",
            "transaction_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdee",
            "transaction_type": "transfer",
            "sila_amount": 100,
            "status": "success",
            "usd_status": "queued",
            "token_status": "success",
            "created": "2020-03-09T17:45:59.709910Z",
            "last_update": "2020-03-09T17:45:59.709920Z",
            "created_epoch": 1582754399,
            "last_update_epoch": 1582754414,
            "descriptor": "",           
            "descriptor_ach": "",
            "ach_name": "",
            "destination_address": "0xF08D203754F8960C3655Aa00Bde006DB78fdBf5d",
            "destination_handle": "user",
            "handle_address": "0x65a796a4bD3AaF6370791BefFb1A86EAcfdBc3C1",
            "source_id": "37559d1e-2848-4109-a7d8-a8b250c6e863",
            "destination_id": "ebd20435-02d4-4fe2-8573-777e712974e8",
            "sec_code": "PPD",
            "timeline": [
                {
                    "date": "2020-03-09T17:45:59.716909Z",
                    "date_epoch": 1582754399,
                    "status": "queued",
                    "usd_status": "queued",
                    "token_status": "queued"
                },
                {
                    "date": "2020-03-09T17:45:59.727218Z",
                    "date_epoch": 1582754400,
                    "status": "pending",
                    "usd_status": "queued",
                    "token_status": "pending"
                },
                {
                    "date": "2020-03-09T17:45:59.728691Z",
                    "date_epoch": 1582754414,
                    "status": "success",
                    "usd_status": "queued",
                    "token_status": "success"
                }
            ]
        },
        {
            "user_handle": "user",
            "reference_id": "ref",
            "transaction_id": "12345678-abcd-1234-abcd-1234567890ab",
            "transaction_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
            "transaction_type": "issue",
            "sila_amount": 1000,
            "bank_account_name": "default",
            "handle_address": "0x65a796a4bD3AaF6370791BefFb1A86EAcfdBc3C1",
            "status": "success",
            "usd_status": "success",
            "token_status": "success",
            "created": "2019-04-03T00:00:00.000Z",
            "last_update": "2019-04-03T00:00:00.003Z",
            "created_epoch": 1234567890,
            "last_update_epoch": 1234567899,
            "descriptor": "POS purchase in-store",           
            "descriptor_ach": "POS purcha",
            "ach_name": "Your Store Name",
            "processing_type": "STANDARD_ACH",
            "submitted": "2021-01-22T17:05:48.425467+00:00",
            "submitted_epoch": 1611335148,
            "trace_number": null,
            "addenda": null,
            "source_id": "37559d1e-2848-4109-a7d8-a8b250c6e863",
            "destination_id": "ebd20435-02d4-4fe2-8573-777e712974e8",
            "timeline": [
                {
                    "date": "2019-04-03T00:00:00.000Z",
                    "date_epoch": 1234567890,
                    "status": "queued",
                    "usd_status": "queued",
                    "token_status": "queued"
                },
                {
                    "date": "2019-04-03T00:00:00.001Z",
                    "date_epoch": 1234567890,
                    "status": "pending",
                    "usd_status": "pending",
                    "token_status": "queued"
                },
                {
                    "date": "2019-04-03T00:00:00.002Z",
                    "date_epoch": 1234567890,
                    "status": "pending",
                    "usd_status": "success",
                    "token_status": "pending"
                },
                {
                    "date": "2019-04-03T00:00:00.003Z",
                    "date_epoch": 1234567899,
                    "status": "success",
                    "usd_status": "success",
                    "token_status": "success"
                }
            ]
        },
        {
            "user_handle": "registration-test-2020-sept2",
            "reference_id": "32262644-ef23-4aa7-813a-1d83737a70fb",
            "transaction_id": "eff589b5-b12c-4276-81db-5c238250ae68",
            "transaction_hash": "",
            "transaction_type": "issue",
            "sila_amount": 420,
            "status": "failed",
            "usd_status": "failed",
            "token_status": "queued",
            "created": "2021-01-22T17:05:15.313627+00:00",
            "last_update": "2021-01-22T17:07:15.332248+00:00",
            "created_epoch": 1611335115,
            "last_update_epoch": 1611335235,
            "descriptor": "",
            "descriptor_ach": "",
            "ach_name": "",
            "handle_address": "0x0AaaF8761c1B246D5EAB358Abd0D6c4B769AF042",
            "bank_account_name": "plaid",
            "processing_type": "STANDARD_ACH",
            "submitted": "2021-01-22T17:05:48.425467+00:00",
            "submitted_epoch": 1611335148,
            "trace_number": null,
            "addenda": null,
            "error_code": "ACH_RETURN",
            "error_msg": "An ACH return was received for this transaction.",
            "return_code": "R01",
            "return_desc": "Insufficient funds",
            "source_id": "37559d1e-2848-4109-a7d8-a8b250c6e863",
            "destination_id": "ebd20435-02d4-4fe2-8573-777e712974e8",
            "sec_code": "WEB",
            "timeline": [
                {
                    "date": "2021-01-22T17:05:15.313627+00:00",
                    "date_epoch": 1611335115,
                    "status": "queued",
                    "usd_status": "queued",
                    "token_status": "queued"
                },
                {
                    "date": "2021-01-22T17:05:22.091482+00:00",
                    "date_epoch": 1611335122,
                    "status": "pending",
                    "usd_status": "pending",
                    "token_status": "queued"
                },
                {
                    "date": "2021-01-22T17:05:27.651380+00:00",
                    "date_epoch": 1611335127,
                    "status": "pending",
                    "usd_status": "pending",
                    "token_status": "queued"
                },
                {
                    "date": "2021-01-22T17:05:49.753878+00:00",
                    "date_epoch": 1611335149,
                    "status": "pending",
                    "usd_status": "pending",
                    "token_status": "queued"
                },
                {
                    "date": "2021-01-22T17:07:15.312433+00:00",
                    "date_epoch": 1611335235,
                    "status": "failed",
                    "usd_status": "failed",
                    "token_status": "queued"
                }
            ]
        },
        {
            "user_handle": "user",
            "reference_id": "1d421252-dedd-4175-a0e2-2e45c4dce3e1",
            "transaction_id": "08792923-19c0-415a-b013-790324d22d4d",
            "transaction_hash": "",
            "transaction_type": "issue",
            "sila_amount": 100,
            "status": "success",
            "usd_status": "success",
            "token_status": "success",
            "created": "2022-01-14T06:06:26.674258+00:00",
            "last_update": "2022-01-14T06:38:31.137433+00:00",
            "created_epoch": 1642140386,
            "last_update_epoch": 1642142311,
            "descriptor": "",
            "descriptor_ach": "",
            "ach_name": "",
            "child_transactions": [],
            "sila_ledger_type": "Internal",
            "handle_address": "0xF8ea3da805d9Ac83181B00d0EdFeddD4aD91E757",
            "ledger_account_id": "590be7da-b683-4511-85ee-5112d6003e52",
            "bank_account_name": "test bank account",
            "processing_type": "INSTANT_SETTLEMENT",
            "submitted": "2022-01-14T06:37:00.206201+00:00",
            "submitted_epoch": 1642142220,
            "trace_number": "049211613157098",
            "addenda": "b1b545f6-6b0e-437e-8825-33813523ad41",
            "sec_code": "PPD",
            "source_id": "37559d1e-2848-4109-a7d8-a8b250c6e863",
            "destination_id": "ebd20435-02d4-4fe2-8573-777e712974e8"
        },
        {
            "user_handle": "test-user",
            "reference_id": "e4dd58ce-a2b5-4c65-a234-1cda4a1a8421",
            "transaction_id": "c6f6e3bc-1566-4c10-952d-ac72c2180866",
            "transaction_hash": "",
            "transaction_type": "issue",
            "sila_amount": 420,
            "status": "failed",
            "usd_status": "failed",
            "token_status": "queued",
            "created": "2022-01-11T08:55:14.290247+00:00",
            "last_update": "2022-01-11T08:58:23.790908+00:00",
            "created_epoch": 1641891314,
            "last_update_epoch": 1641891503,
            "descriptor": "",
            "descriptor_ach": "",
            "ach_name": "",
            "child_transactions": [
                {
                    "user_handle": "test-user",
                    "reference_id": "e4dd58ce-a2b5-4c65-a234-1cda4a1a8421",
                    "transaction_id": "f153f058-46c9-4983-b0cc-99c8a669bce0",
                    "transaction_hash": "",
                    "transaction_type": "transfer",
                    "sila_amount": 420,
                    "status": "success",
                    "usd_status": "queued",
                    "token_status": "success",
                    "created": "2022-01-11T08:58:23.653895+00:00",
                    "last_update": "2022-01-11T08:58:39.679527+00:00",
                    "created_epoch": 1641891503,
                    "last_update_epoch": 1641891519,
                    "descriptor": "",
                    "descriptor_ach": "",
                    "ach_name": ""
                }
            ],
            "sila_ledger_type": "Internal",
            "handle_address": "0x4971CDa8a7c6E376a256990f3CD2Ce8299Ddd90B",
            "ledger_account_id": "e3093458-fd91-4421-acbb-a84235c8c90b",
            "bank_account_name": "cb_test_business",
            "processing_type": "INSTANT_SETTLEMENT",
            "submitted": "2022-01-11T08:57:07.924562+00:00",
            "submitted_epoch": 1641891427,
            "trace_number": "059514741696424",
            "addenda": "c6df1896-11fe-40f0-89e5-4ae72165b241",
            "error_code": "ACH_RETURN",
            "error_msg": "An ACH return was received for this transaction.",
            "return_code": "R01",
            "return_desc": "Insufficient funds",
            "sec_code": "PPD",   
            "source_id": "37559d1e-2848-4109-a7d8-a8b250c6e863",
            "destination_id": "ebd20435-02d4-4fe2-8573-777e712974e8"
        }
    ]
}
let userHandle = null;
let walletPrivateKey = null;
const res = await Sila.getTransactions(userHandle, walletPrivateKey, filters); // Filters are optional. Use Sila.TransactionFilters for a complete list of possible filters
//userHandle and walletPrivateKey is also optional

let userHandle = 'UserHandle';
let walletPrivateKey = 'WalletPrivateKey';
const res = await Sila.getTransactions(userHandle, walletPrivateKey, filters); // Filters are optional. Use Sila.TransactionFilters for a complete list of possible filters

// Success Response Object
console.log(res.statusCode); // 200
console.log(res.data.success); // TRUE
console.log(res.data.status); // TRUE
console.log(res.data.page); // The number of page
console.log(res.data.returned_count);
console.log(res.data.total_count);
console.log(res.data.pagination);
console.log(res.data.pagination.returned_count);
console.log(res.data.pagination.total_count);
console.log(res.data.pagination.current_page);
console.log(res.data.pagination.total_pages);
console.log(res.data.transactions); // Transactions array
console.log(res.data.transactions[0].user_handle);
console.log(res.data.transactions[0].reference_id);
console.log(res.data.transactions[0].transaction_id);
console.log(res.data.transactions[0].transaction_hash);
console.log(res.data.transactions[0].transaction_type);
console.log(res.data.transactions[0].sila_amount);
console.log(res.data.transactions[0].status);
console.log(res.data.transactions[0].usd_status);
console.log(res.data.transactions[0].token_status);
console.log(res.data.transactions[0].created);
console.log(res.data.transactions[0].last_update);
console.log(res.data.transactions[0].created_epoch);
console.log(res.data.transactions[0].last_update_epoch);
console.log(res.data.transactions[0].descriptor);
console.log(res.data.transactions[0].descriptor_ach);
console.log(res.data.transactions[0].ach_name);
console.log(res.data.transactions[0].destination_address);
console.log(res.data.transactions[0].destination_handle);
console.log(res.data.transactions[0].handle_address);
console.log(res.data.transactions[0].timeline);
console.log(res.data.transactions[0].timeline[0].date);
console.log(res.data.transactions[0].timeline[0].date_epoch);
console.log(res.data.transactions[0].timeline[0].status);
console.log(res.data.transactions[0].timeline[0].usd_status);
console.log(res.data.transactions[0].timeline[0].token_status);
console.log(res.data.transactions[0].timeline[0].provider_status);

console.log(res.data.transactions[0].sec_code);

// New option fields are exposed in reponse
// They are found in different type of transaction

console.log(res.data.transactions[0].source_id);
console.log(res.data.transactions[0].destination_id);
console.log(res.data.transactions[0].effective_date);
console.log(res.data.transactions[0].effective_epoch);

console.log(res.data.transactions[0].sila_ledger_type);
console.log(res.data.transactions[0].destination_sila_ledger_type);
console.log(res.data.transactions[0].ledger_account_id);
console.log(res.data.transactions[0].destination_ledger_account_id);


console.log(res.data.transactions[0].IMAD);
console.log(res.data.transactions[0].OMAD);
console.log(res.data.transactions[0].provider_tx_id);
console.log(res.data.transactions[0].provider_status);
payload={

        "user_handle": "user.silamoney.eth",        #Optional
        "search_filters": {...}                     #Optional: See below for potential values.
    }

User.getTransactions(silaApp,payload,user_private_key)        #Requires 256 bit ethereum private key                      

### Success Response Object
{
    "status_code": 200,
    "success": True,
    "status": "SUCCESS",
    "page": 1,
    "returned_count": 3,
    "total_count": 3,
    "pagination": {
        "returned_count": 3,
        "total_count": 3,
        "current_page": 1,
        "total_pages": 1
    },
    "transactions": [
        {
            "user_handle": "user",
            "reference_id": "",
            "transaction_id": "12345678-abcd-1234-abcd-1234567890aa",
            "transaction_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdee",
            "transaction_type": "transfer",
            "sila_amount": 100,
            "status": "success",
            "usd_status": "queued",
            "token_status": "success",
            "created": "2020-03-09T17:45:59.709910Z",
            "last_update": "2020-03-09T17:45:59.709920Z",
            "created_epoch": 1582754399,
            "last_update_epoch": 1582754414,
            "descriptor": "",
            "descriptor_ach": "",
            "ach_name": "",
            "destination_address": "0xF08D203754F8960C3655Aa00Bde006DB78fdBf5d",
            "destination_handle": "user",
            "handle_address": "0x65a796a4bD3AaF6370791BefFb1A86EAcfdBc3C1",
            "source_id": 782bbd8c-ae27-4fb6-89e8-2675a1791382, # Optional
            "destination_id": ecd4984f-6e3d-444b-9532-3fb3828acb8c # Optional
            "effective_date": 1582754414, # Optional
            "effective_epoch": "2020-03-09T17:45:59.709920Z", # Optional
            "sec_code": "WEB",
            "IMAD": "", 
            "OMAD": "", 
            "provider_tx_id": "", 
            "provider_status": "",
            "timeline": [
                {
                    "date": "2020-03-09T17:45:59.716909Z",
                    "date_epoch": 1582754399,
                    "status": "queued",
                    "usd_status": "queued",
                    "token_status": "queued",
                    "provider_status": "",

                },
                ...
            ]
        },
        ...
    ]
}

### Failure Response Object
{
    status: 'FAILURE'
}
SearchFilters filters = new SearchFilters();
filters.setTransactionId("some UUID string assigned by Sila");
filters.setReferenceId("The reference string sent in the header object when transaction request was made");
filters.showTimelines();// for true and by default false
filters.sortAscending();// for true and by default false
filters.setMaxSilaAmount(1300);
filters.setMinSilaAmount(1000);
List<SearchFilters.StatusesEnum> statuses=new ArrayList<>();
statuses.add(SearchFilters.StatusesEnum.QUEUED); // queued
statuses.add(SearchFilters.StatusesEnum.PENDING); // pending
statuses.add(SearchFilters.StatusesEnum.PENDING_CONFIRMATION); // pending_confirmation
statuses.add(SearchFilters.StatusesEnum.REVERSED); // reversed
statuses.add(SearchFilters.StatusesEnum.FAILED); // failed
statuses.add(SearchFilters.StatusesEnum.SUCCESS); // success
statuses.add(SearchFilters.StatusesEnum.ROLLBACK); // rollback
statuses.add(SearchFilters.StatusesEnum.REVIEW); // review
filters.setStatuses(statuses);
filters.setStartEpoch(1234567860);
filters.setEndEpoch(1234567891);
filters.setPage(1);
filters.setPerPage(20);
List<SearchFilters.TransactionTypesEnum> transactionTypesEnums=new ArrayList<>();
transactionTypesEnums.add(SearchFilters.TransactionTypesEnum.ISSUE);
transactionTypesEnums.add(SearchFilters.TransactionTypesEnum.REDEEM);
transactionTypesEnums.add(SearchFilters.TransactionTypesEnum.TRANSFER);
filters.setTransactionTypes(transactionTypesEnums);
filters.setBankAccountName("bank account name");
filters.setSourceId("source account id");
filters.setDestinationId("destination account id");
filters.setProcessingType(ProcessingTypeEnum.INSTANT_SETTLEMENT); // INSTANT_SETTLEMENT / WIRE
filters.setPaymentMethodId("any payment method id from get_payment_methods");

ApiResponse response = api.getTransactions("userHandle", filters, "userPrivateKey"); // userHandle and userPrivateKey are optional.

System.out.println(response.getStatusCode()); // 200
GetTransactionsResponse parsedResponse = (GetTransactionsResponse) response.getData();
System.out.println(parsedResponse.success); // true
System.out.println(parsedResponse.status); // SUCCESS
System.out.println(parsedResponse.pagination.getReturnedCount());
System.out.println(parsedResponse.pagination.getTotalCount());
System.out.println(parsedResponse.pagination.getCurrentPage());
System.out.println(parsedResponse.pagination.getTotalPages());
System.out.println(parsedResponse.transactions.get(0).userHandle);
System.out.println(parsedResponse.transactions.get(0).referenceId);
System.out.println(parsedResponse.transactions.get(0).transactionId);
System.out.println(parsedResponse.transactions.get(0).transactionHash);
System.out.println(parsedResponse.transactions.get(0).transactionType);
System.out.println(parsedResponse.transactions.get(0).silaAmount);
System.out.println(parsedResponse.transactions.get(0).status);
System.out.println(parsedResponse.transactions.get(0).usdStatus);
System.out.println(parsedResponse.transactions.get(0).tokenStatus);
System.out.println(parsedResponse.transactions.get(0).created);
System.out.println(parsedResponse.transactions.get(0).lastUpdate);
System.out.println(parsedResponse.transactions.get(0).createdEpoch);
System.out.println(parsedResponse.transactions.get(0).lastUpdateEpoch);
System.out.println(parsedResponse.transactions.get(0).descriptor);
System.out.println(parsedResponse.transactions.get(0).descriptorAch);
System.out.println(parsedResponse.transactions.get(0).achName);
System.out.println(parsedResponse.transactions.get(0).timeline); // List of changes on the transaction
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).date);
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).dateEpoch);
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).status);
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).usdStatus);
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).tokenStatus);
System.out.println(parsedResponse.transactions.get(0).timeline.get(0).providerStatus);
if (parsedResponse.transactions.get(0).transactionType.equals("transfer")) {
    System.out.println(parsedResponse.transactions.get(0).destinationAddress);
    System.out.println(parsedResponse.transactions.get(0).destinationHandle);
    System.out.println(parsedResponse.transactions.get(0).handleAddress);
} else {
    System.out.println(parsedResponse.transactions.get(0).processingType);
}
System.out.println(parsedResponse.transactions.get(0).sourceId);
System.out.println(parsedResponse.transactions.get(0).destinationId);
System.out.println(parsedResponse.transactions.get(0).silaLedgerType);  
System.out.println(parsedResponse.transactions.get(0).destinationSilaLedgerType);
System.out.println(parsedResponse.transactions.get(0).ledgerAccountId); 
System.out.println(parsedResponse.transactions.get(0).destinationLedgerAccountId);
System.out.println(parsedResponse.transactions.get(0).effectiveDate);   
System.out.println(parsedResponse.transactions.get(0).effectiveEpoch);
System.out.println(parsedResponse.transactions.get(0).childTransactions); // child transactions detail
System.out.println(parsedResponse.transactions.get(0).submitted);
System.out.println(parsedResponse.transactions.get(0).submittedEpoch);
System.out.println(parsedResponse.transactions.get(0).errorMsg);
System.out.println(parsedResponse.transactions.get(0).secCode);
System.out.println(parsedResponse.transactions.get(0).IMAD);
System.out.println(parsedResponse.transactions.get(0).OMAD);
System.out.println(parsedResponse.transactions.get(0).providerTxId);
System.out.println(parsedResponse.transactions.get(0).providerStatus);
use Silamoney\Client\Domain\SearchFilters;

// Load your information
$userHandle = 'user.silamoney.eth';
$filters = new SearchFilters();

$processingType = "INSTANT_SETTLEMENT"; // Optional. All possible processing types: STANDARD, SAME_DAY, INSTANT, CARD, INSTANT_SETTLEMENT & WIRE.

$filters->setProcessingType($processingType); // Optional

$PaymentMethodId = "Payment Method Id"; // Optional
$filters->setPaymentMethodId($PaymentMethodId);// Optional

// Call the api
$response = $client->getTransactions($userHandle, $filters);
// or without $userHandle
$response = $client->getTransactions(null, $filters);

//Success 200
echo $response->getStatusCode(); // 200
$data = $response->getData();
echo $data->success; // TRUE
$data->status; // SUCCESS
$data->page; // The current page
$data->returnedCount; // The amount of results returned in this request
$data->totalCount; // The total amount of results that satisfies the filters
$transactions = $data->transactions; // Array of transactions
$transactions[0]->userHandle; // The user handle
$transactions[0]->referenceId; // The transaction reference
$transactions[0]->transactionId; // The transaction id
$transactions[0]->transactionHash; // The transaction hash
$transactions[0]->transactionType; // The transaction type
$transactions[0]->silaAmount; // The amount of sila tokens in the transaction
$transactions[0]->bankAccountName; // The bank account used in the transaction
$transactions[0]->status; // The current status of the transaction
$transactions[0]->usdStatus; // The status of the transaction
$transactions[0]->tokenStatus; // The status of the token
$transactions[0]->created; // The date of creation of the transaction
$transactions[0]->lastUpdate; // The date of last modification of the transaction
$transactions[0]->createdEpoch;
$transactions[0]->lastUpdateEpoch;
$transactions[0]->descriptor; // The descriptor of the transaction
$transactions[0]->descriptorAch;
$transactions[0]->achName;
$transactions[0]->destinationAddress; // Just for 'transfer' transactions.
$transactions[0]->destinationHandle; // Just for 'transfer' transactions.
$transactions[0]->handleAddress;
$transactions[0]->processingType; // Just for 'issue' and 'redeem' transactions.
$transactions[0]->returnCode; //For 'issue' and 'redeem' transactions only where there is an error_code field matching "AC_RETURN".
$transactions[0]->returnDesc; //For 'issue' and 'redeem' transactions only where there is an error_code field matching "AC_RETURN".
$transactions[0]->traceNumber; //For 'issue' and 'redeem' transactions.
$transactions[0]->addenda; //For 'issue' and 'redeem' transactions.
$transactions[0]->submitted;
$transactions[0]->submittedEpoch;
$transactions[0]->secCode;
$transactions[0]->IMAD;
$transactions[0]->OMAD;
$transactions[0]->providerTxId;
$transactions[0]->providerStatus;
$transactions[0]->timeline;
$transactions[0]->timeline[0]->date;
$transactions[0]->timeline[0]->dateEpoch;
$transactions[0]->timeline[0]->status;
$transactions[0]->timeline[0]->usdStatus;
$transactions[0]->timeline[0]->tokenStatus;
$transactions[0]->timeline[0]->providerStatus;
$transactions[0]->childTransactions;
$transactions[0]->childTransactions[0]->reference_id;
$transactions[0]->childTransactions[0]->transaction_id;
$transactions[0]->childTransactions[0]->transaction_type;
$transactions[0]->childTransactions[0]->sila_amount;
$transactions[0]->childTransactions[0]->status;
//Load your informations
string userHandle = "your-user-handle";
SearchFilters filters = new SearchFilters();
filters.TransactionId = "some UUID string assigned by Sila";
filters.ReferenceId = "The reference string sent in the header object when transaction request was made";
filters.ShowTimelines = true;
filters.SortAscending = false;
filters.MaxSilaAmount = 1300;
filters.MinSilaAmount = 1000;
filters.SetStatuses(new Statuses[] { Statuses.Queued, Statuses.Pending, Statuses.Failed, Statuses.Success, Statuses.Rollback, Statuses.Review });
filters.StartEpoch = 1234567860;
filters.EndEpoch = 1234567891;
filters.Page = 1;
filters.PerPage = 20;
filters.SetTransactionTypes(new TransactionTypes[] { TransactionTypes.Issue, TransactionTypes.Redeem, TransactionTypes.Transfer });
filters.BankAccountName = "bank account name"; //if passing CardName parameter than no need to pass BankAccountName
filters.CardName = "visa"; //if passing BankAccountName parameter then no need to pass CardName
filters.SourceId = "UUID of virtual account - represents the source - NEW!";  // optional
filters.DestinationId = "UUID of virtual account - represents the destination - NEW!"; // optional
filters.ProcessingType = ProcessingType.Wire; // optional - Sameday/Card/InstantACH/Standard/InstantSettlement/Wire
filters.PaymentMethodId = "f6e57c71-dff8-47fb-bb4d-df7ce501d6ef"; //"any payment method id from get_payment_methods"

ApiResponse<object> response = api.GetTransactions(userHandle, filters); // With userHandle

or

ApiResponse<object> response = api.GetTransactions(filters); // Without userHandle 

// Success Object Response

Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((GetTransactionsResult)response.Data).Page); // Page Number  
Console.WriteLine(((GetTransactionsResult)response.Data).ReturnedCount); // Pages returned
Console.WriteLine(((GetTransactionsResult)response.Data).Success); // Status of the request
Console.WriteLine(((GetTransactionsResult)response.Data).TotalCount); // Total of transactions returned
Console.WriteLine(((GetTransactionsResult)response.Data).ResponseTimeMs); // API responses time

Console.WriteLine(((GetTransactionsResult)response.Data).Transactions); // Transactions array
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].UserHandle);  // The user handle
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ReferenceId); // The transaction reference
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TransactionId);  // The transaction id
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TransactionHash); // The transaction hash
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TransactionType); // The transaction type
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].SilaAmount); // The amount of sila tokens in the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].BankAccountName); // The bank account used in the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].CardName); // The CardName used in the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].Status); // The current status of the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].UsdStatus); // The status of the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TokenStatus); // The status of the token
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].Created); // The date of creation of the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].LastUpdate); // The date of last modification of the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].CreatedEpoch);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].LastUpdateEpoch);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].Descriptor); // The descriptor of the transaction
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DescriptorAch);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].AchName);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DestinationAddress); // Just for 'transfer' transactions.
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DestinationHandle); // Just for 'transfer' transactions.
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].HandleAddress);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ProcessingType); // Just for 'issue' and 'redeem' transactions.
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ReturnCode); //For 'issue' and 'redeem' transactions only where there is an error_code field matching "AC_RETURN".
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ReturnDesc); //For 'issue' and 'redeem' transactions only where there is an error_code field matching "AC_RETURN".
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TraceNumber); //For 'issue' and 'redeem' transactions.
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].Addenda); //For 'issue' and 'redeem' transactions.
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ChildTransactions); //String array list
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].SecCode); //3 letter code like “WEB” or “PPD”, etc.

Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].EffectiveDate);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].EffectiveEpoch);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].SilaLedgerType);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].SourceId);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DestinationId);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DestinationSilaLedgerType);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].LedgerAccountId);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].DestinationLedgerAccountId);

Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].IMAD); // "20210913MMQFMPD1000540"
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].OMAD); // "20210913L1B77D1C005996"
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ProviderTxId); // "JW2QGEHYI0"
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].ProviderStatus); // "initiated"


Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].Date);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].DateEpoch);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].Status);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].UsdStatus);
Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].TokenStatus);

Console.WriteLine(((GetTransactionsResult)response.Data).Transactions[0].TimeLines[0].ProviderStatus); // "complete"

Key

Type

Description

header

JSON object

Required. Requires these keys in JSON format: created, app_handle. , user_handle is optional. See the /check_handle endpoint for the complete list of fields in this object.

search_filters

JSON object

Optional. Allows filtering results.

search_filters.
transaction_id

String

Optional. The format should be a UUID string.
Example: 5167160d-9d12-4fa8-a8cd-302507782de0

search_filters.
reference_id

String

Optional. The reference id that was sent in the header object when the transaction request was made.

search_filters.
show_timelines

Boolean

Optional. Default: false
Example: true

search_filters.
sort_ascending

Boolean

Optional. Default: false
Example: false

search_filters.
max_sila_amount

Number

Optional. Minimum 0
Maximum 10000000000000000

search_filters.
min_sila_amount

Number

Optional. Minimum 0
Maximum 10000000000000000

search_filters.
statuses

Array

Optional. Choice field.
Example: ["queued", "pending", "reversed", "failed", "success", "rollback", "review", "pending_confirmation"]

search_filters.
start_epoch

Integer

Optional. UTC Unix Timestamp. Minimum 0
Example: 1234567860

search_filters.
end_epoch

Integer

Optional. UTC Unix Timestamp. Minimum 0
Example: 1234567891

search_filters.page

Integer

Optional. Min Length 1 Default: 1

search_filters.
per_page

Integer

Optional. Min 1
Max 100
Default per page 20

search_filters.
transaction_types

Array

Optional. Choice field.
Example: ["issue", "redeem", "transfer"]

search_filters.
bank_account_name

String

Optional. The name of the bank account. Max length 255.
Example: "bank_name"

search_filters.
blockchain_address

String

Optional. Hex-encoded blockchain address (prefixed with "0x")
Must be globally unique, Min length 42, Max length 42
This value should be match the required address regex pattern: ^0x[a-fA-F0-9] {40}$
Example: 0x1234567890abcdef1234567890abcdef12345678

search_filters.processing_type

Array

Optional. To filter Instant Settlement transactions, use INSTANT_SETTLEMENT

search_filters.payment_method_id

String

Optional. To filter on a single payment method (wallet, bank account, virtual account, etc.)

Responses

The error_code and error_msg fields are returned for failed, manual review, or rollback transactions of all types only. If the error_code field is returned, you can refer to the Transaction Error Codes page to check what it means. The error_msg field is a human-readable description of the error.

The descriptor is used to describe the transaction. A shortened form of the descriptor (descriptor_ach) will appear on the end-user's bank statement.

The descriptor_ach is the first ten characters of the descriptor value, used to describe the transaction on the end-user’s bank statement. This is truncated from the descriptor field (100 chars max).

The ach_name is a 16 character field which appears on the end-user’s bank statement and reflects the company name responsible for the transaction.

The processing_type field is only returned for issue and redeem transactions. Possible values are in ["SAME_DAY_ACH", "STANDARD_ACH"]. By default, all issue and redeem transactions are sent as standard ACH transactions ("STANDARD_ACH"). For more details, see the ACH processing schedule page.

The submitted and submitted_epoch fields are returned for issue and redeem transactions only. If these fields are null, this indicates that these transactions have not been submitted in an ACH file. (If the transaction is an issue transaction, this indicates that the transaction can be canceled.)

The return_code and return_desc fields are returned for issue and redeem transactions where there is an error_code field matching "ACH_RETURN".

The trace_number and addenda fields are returned only for issue and redeem transactions and will always be null except in the production environment. These are usually used for escalating problems with ACH transactions, particularly returns. The addenda is sometimes shown on an end-user's bank statement (though not always) .

📘

Descriptors

Currently only the first 10 characters of the 100-character descriptor field will appear on the customer's statement. Default values are Debit or Credit and do not carry a surcharge. The use of a descriptor will incur an additional fee per transaction.

📘

ACH name

This is a 16 character field that appears on the end-user’s bank statement and reflects the company name responsible for the transaction. There is an additional application fee and process to approve the use of the company name.

Status Code

success Attribute

Description

200

true

Able to return transaction information.

400

false

Bad request format - check validation_details for more information.

403

false

Bad/absent signature header.

500

false

Server-side issue; let us know if you get this status code!

📘

Note

"transfer" transactions will always have a usd_status of "queued" since they are exclusively blockchain transfer events.

For more information on the various usd status and token status values, see below:

Issue Status Diagram
Transfer Status Diagram
Redeem Status Diagram


Did this page help you?