# Transactions

## List transactions by organization

`client.transactions.list(TransactionListParamsquery, RequestOptionsoptions?): TransactionListResponse`

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

List transactions by organization

### Parameters

- `query: TransactionListParams`

  - `organization_id: string`

  - `page?: number`

  - `per_page?: number`

### Returns

- `TransactionListResponse`

  - `data: Array<Data>`

    - `id: string`

    - `amount: number`

      Amount in minor units

    - `created_at: string`

    - `currency: string`

    - `from_account_id: string`

    - `organization_id: string`

    - `status: "pending" | "posted" | "failed"`

      - `"pending"`

      - `"posted"`

      - `"failed"`

    - `to_account_id: string`

    - `transaction_kind: "deposit" | "withdraw" | "transfer"`

      - `"deposit"`

      - `"withdraw"`

      - `"transfer"`

    - `updated_at: string`

    - `environment?: string | null`

    - `failure_reason?: string | null`

    - `idempotency_key?: string`

  - `pagination: Pagination`

    - `page: number`

    - `per_page: number`

    - `total_count: number`

    - `total_pages: number`

### Example

```typescript
import Rails from 'railsinfra';

const client = new Rails({
  apiKey: process.env['RAILS_API_KEY'], // This is the default and can be omitted
});

const transactions = await client.transactions.list({
  organization_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
});

console.log(transactions.data);
```

#### 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

`client.transactions.listByAccount(stringaccountID, TransactionListByAccountParamsquery?, RequestOptionsoptions?): TransactionListByAccountResponse`

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

List account transactions

### Parameters

- `accountID: string`

- `query: TransactionListByAccountParams`

  - `limit?: number`

### Returns

- `TransactionListByAccountResponse = Array<Transaction>`

  - `id: string`

  - `account_id: string`

  - `amount: string`

  - `balance_after: string`

  - `created_at: string`

  - `currency: string`

  - `status: "pending" | "completed" | "failed" | "cancelled"`

    - `"pending"`

    - `"completed"`

    - `"failed"`

    - `"cancelled"`

  - `transaction_type: "deposit" | "withdrawal" | "transfer" | 2 more`

    - `"deposit"`

    - `"withdrawal"`

    - `"transfer"`

    - `"recurring_payment"`

    - `"savings_withdraw"`

  - `updated_at: string`

  - `description?: string | null`

  - `external_recipient_id?: string | null`

  - `recipient_account_id?: string | null`

  - `reference_id?: string | null`

### Example

```typescript
import Rails from 'railsinfra';

const client = new Rails({
  apiKey: process.env['RAILS_API_KEY'], // This is the default and can be omitted
});

const transactions = await client.transactions.listByAccount(
  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);

console.log(transactions);
```

#### 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

`client.transactions.retrieve(stringid, RequestOptionsoptions?): Transaction`

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

Retrieve transaction

### Parameters

- `id: string`

### Returns

- `Transaction`

  - `id: string`

  - `account_id: string`

  - `amount: string`

  - `balance_after: string`

  - `created_at: string`

  - `currency: string`

  - `status: "pending" | "completed" | "failed" | "cancelled"`

    - `"pending"`

    - `"completed"`

    - `"failed"`

    - `"cancelled"`

  - `transaction_type: "deposit" | "withdrawal" | "transfer" | 2 more`

    - `"deposit"`

    - `"withdrawal"`

    - `"transfer"`

    - `"recurring_payment"`

    - `"savings_withdraw"`

  - `updated_at: string`

  - `description?: string | null`

  - `external_recipient_id?: string | null`

  - `recipient_account_id?: string | null`

  - `reference_id?: string | null`

### Example

```typescript
import Rails from 'railsinfra';

const client = new Rails({
  apiKey: process.env['RAILS_API_KEY'], // This is the default and can be omitted
});

const transaction = await client.transactions.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(transaction.id);
```

#### 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"
}
```

## Domain Types

### Transaction List Response

- `TransactionListResponse`

  - `data: Array<Data>`

    - `id: string`

    - `amount: number`

      Amount in minor units

    - `created_at: string`

    - `currency: string`

    - `from_account_id: string`

    - `organization_id: string`

    - `status: "pending" | "posted" | "failed"`

      - `"pending"`

      - `"posted"`

      - `"failed"`

    - `to_account_id: string`

    - `transaction_kind: "deposit" | "withdraw" | "transfer"`

      - `"deposit"`

      - `"withdraw"`

      - `"transfer"`

    - `updated_at: string`

    - `environment?: string | null`

    - `failure_reason?: string | null`

    - `idempotency_key?: string`

  - `pagination: Pagination`

    - `page: number`

    - `per_page: number`

    - `total_count: number`

    - `total_pages: number`

### Transaction List By Account Response

- `TransactionListByAccountResponse = Array<Transaction>`

  - `id: string`

  - `account_id: string`

  - `amount: string`

  - `balance_after: string`

  - `created_at: string`

  - `currency: string`

  - `status: "pending" | "completed" | "failed" | "cancelled"`

    - `"pending"`

    - `"completed"`

    - `"failed"`

    - `"cancelled"`

  - `transaction_type: "deposit" | "withdrawal" | "transfer" | 2 more`

    - `"deposit"`

    - `"withdrawal"`

    - `"transfer"`

    - `"recurring_payment"`

    - `"savings_withdraw"`

  - `updated_at: string`

  - `description?: string | null`

  - `external_recipient_id?: string | null`

  - `recipient_account_id?: string | null`

  - `reference_id?: string | null`
