# Transactions

## List transactions by organization

`TransactionListResponse transactions().list(TransactionListParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/api/v1/transactions`

List transactions by organization

### Parameters

- `TransactionListParams params`

  - `String organizationId`

  - `Optional<Long> page`

  - `Optional<Long> perPage`

### Returns

- `class TransactionListResponse:`

  - `List<Data> data`

    - `String id`

    - `long amount`

      Amount in minor units

    - `LocalDateTime createdAt`

    - `String currency`

    - `String fromAccountId`

    - `String organizationId`

    - `Status status`

      - `PENDING("pending")`

      - `POSTED("posted")`

      - `FAILED("failed")`

    - `String toAccountId`

    - `TransactionKind transactionKind`

      - `DEPOSIT("deposit")`

      - `WITHDRAW("withdraw")`

      - `TRANSFER("transfer")`

    - `LocalDateTime updatedAt`

    - `Optional<String> environment`

    - `Optional<String> failureReason`

    - `Optional<String> idempotencyKey`

  - `Pagination pagination`

    - `long page`

    - `long perPage`

    - `long totalCount`

    - `long totalPages`

### Example

```java
package com.rails.api.example;

import com.rails.api.client.RailsClient;
import com.rails.api.client.okhttp.RailsOkHttpClient;
import com.rails.api.models.transactions.TransactionListParams;
import com.rails.api.models.transactions.TransactionListResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        RailsClient client = RailsOkHttpClient.fromEnv();

        TransactionListParams params = TransactionListParams.builder()
            .organizationId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
            .build();
        TransactionListResponse transactions = client.transactions().list(params);
    }
}
```

#### Response

```json
{
  "data": [
    {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "amount": 0,
      "created_at": "2019-12-27T18:11:19.117Z",
      "currency": "currency",
      "from_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "status": "pending",
      "to_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "transaction_kind": "deposit",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "environment": "environment",
      "failure_reason": "failure_reason",
      "idempotency_key": "idempotency_key"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 1,
    "total_count": 0,
    "total_pages": 0
  }
}
```

## List account transactions

`List<Transaction> transactions().listByAccount(TransactionListByAccountParamsparams = TransactionListByAccountParams.none(), RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/api/v1/accounts/{account_id}/transactions`

List account transactions

### Parameters

- `TransactionListByAccountParams params`

  - `Optional<String> accountId`

  - `Optional<Long> limit`

### Example

```java
package com.rails.api.example;

import com.rails.api.client.RailsClient;
import com.rails.api.client.okhttp.RailsOkHttpClient;
import com.rails.api.models.Transaction;
import com.rails.api.models.transactions.TransactionListByAccountParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        RailsClient client = RailsOkHttpClient.fromEnv();

        List<Transaction> transactions = client.transactions().listByAccount("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
    }
}
```

#### Response

```json
[
  {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "amount": "amount",
    "balance_after": "balance_after",
    "created_at": "2019-12-27T18:11:19.117Z",
    "currency": "currency",
    "status": "pending",
    "transaction_type": "deposit",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "description": "description",
    "external_recipient_id": "external_recipient_id",
    "recipient_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "reference_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  }
]
```

## Retrieve transaction

`Transaction transactions().retrieve(TransactionRetrieveParamsparams = TransactionRetrieveParams.none(), RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/api/v1/transactions/{id}`

Retrieve transaction

### Parameters

- `TransactionRetrieveParams params`

  - `Optional<String> id`

### Returns

- `class Transaction:`

  - `String id`

  - `String accountId`

  - `String amount`

  - `String balanceAfter`

  - `LocalDateTime createdAt`

  - `String currency`

  - `Status status`

    - `PENDING("pending")`

    - `COMPLETED("completed")`

    - `FAILED("failed")`

    - `CANCELLED("cancelled")`

  - `TransactionType transactionType`

    - `DEPOSIT("deposit")`

    - `WITHDRAWAL("withdrawal")`

    - `TRANSFER("transfer")`

    - `RECURRING_PAYMENT("recurring_payment")`

    - `SAVINGS_WITHDRAW("savings_withdraw")`

  - `LocalDateTime updatedAt`

  - `Optional<String> description`

  - `Optional<String> externalRecipientId`

  - `Optional<String> recipientAccountId`

  - `Optional<String> referenceId`

### Example

```java
package com.rails.api.example;

import com.rails.api.client.RailsClient;
import com.rails.api.client.okhttp.RailsOkHttpClient;
import com.rails.api.models.Transaction;
import com.rails.api.models.transactions.TransactionRetrieveParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        RailsClient client = RailsOkHttpClient.fromEnv();

        Transaction transaction = client.transactions().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
    }
}
```

#### Response

```json
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "amount": "amount",
  "balance_after": "balance_after",
  "created_at": "2019-12-27T18:11:19.117Z",
  "currency": "currency",
  "status": "pending",
  "transaction_type": "deposit",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "external_recipient_id": "external_recipient_id",
  "recipient_account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "reference_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
}
```
