# API Queries

Source: https://fragment.dev/api-reference/ledger-queries

[Documentation index](https://fragment.dev/llms.txt)

<a id="ledger-queries"></a>

<a id="customcurrencies"></a>

## customCurrencies

Query Custom Currencies in the workspace

###### Response
Returns a [CustomCurrenciesConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-customcurrenciesconnection)

```graphql
query CustomCurrencies(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int
) {
  customCurrencies(
    after: $after,
    before: $before,
    first: $first,
    last: $last
  ) {
    nodes {
      ...CurrencyFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{"after": "abc123", "before": "abc123", "first": 2277, "last": 2277}
```

```json
{
  "data": {
    "customCurrencies": {
      "nodes": [Currency],
      "pageInfo": PageInfo
    }
  }
}
```

###### Arguments

- **after** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating forwards. Send endCursor from a response to get its next page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **before** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating backwards. Send startCursor from a response to get the previous page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **first** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of currencies to return per page, when paginating forwards. Defaults to 20, maximum is 200.

- **last** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of currencies to return per page, when paginating backwards. Defaults to 20, maximum is 200.

<a id="externalaccount"></a>

## externalAccount

Get External Account by Link and External ID or Fragment  ID.

###### Response
Returns an [ExternalAccount](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-externalaccount)

```graphql
query ExternalAccount($externalAccount: ExternalAccountMatchInput!) {
  externalAccount(externalAccount: $externalAccount) {
    currency {
      ...CurrencyFragment
    }
    currencyMode
    externalId
    id
    ledgerAccounts {
      ...LedgerAccountsConnectionFragment
    }
    link {
      ...LinkFragment
    }
    linkId
    name
    txs {
      ...TxsConnectionFragment
    }
  }
}
```

```json
{"externalAccount": ExternalAccountMatchInput}
```

```json
{
  "data": {
    "externalAccount": {
      "currency": Currency,
      "currencyMode": "multi",
      "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ledgerAccounts": LedgerAccountsConnection,
      "link": Link,
      "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "name": "abc123",
      "txs": TxsConnection
    }
  }
}
```

###### Arguments

- **externalAccount** ([ExternalAccountMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-externalaccountmatchinput))

<a id="ledger"></a>

## ledger

Get a Ledger by ID

###### Response
Returns a [Ledger](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-ledger)

```graphql
query Ledger($ledger: LedgerMatchInput!) {
  ledger(ledger: $ledger) {
    balanceUTCOffset
    created
    dashboardUrl
    entryStats {
      ...LedgerEntryStatsConnectionFragment
    }
    id
    ik
    ledgerAccountDataMigrations {
      ...LedgerAccountDataMigrationConnectionFragment
    }
    ledgerAccounts {
      ...LedgerAccountsConnectionFragment
    }
    ledgerEntries {
      ...LedgerEntriesConnectionFragment
    }
    ledgerEntryDataMigrations {
      ...LedgerEntryDataMigrationConnectionFragment
    }
    ledgerEntryGroup {
      ...LedgerEntryGroupFragment
    }
    ledgerEntryGroups {
      ...LedgerEntryGroupsConnectionFragment
    }
    lines {
      ...LedgerLinesConnectionFragment
    }
    migrations {
      ...LedgerMigrationConnectionFragment
    }
    name
    payments {
      ...PaymentsConnectionFragment
    }
    reconciliationReport {
      ...ReconciliationReportFragment
    }
    schema {
      ...SchemaFragment
    }
    type
    unreconciledTxs {
      ...TxsConnectionFragment
    }
    workspaceId
  }
}
```

```json
{"ledger": LedgerMatchInput}
```

```json
{
  "data": {
    "ledger": {
      "balanceUTCOffset": "-08:00",
      "created": "2007-12-03T10:15:30Z",
      "dashboardUrl": "abc123",
      "entryStats": LedgerEntryStatsConnection,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ik": "some-safe-string-ik",
      "ledgerAccountDataMigrations": LedgerAccountDataMigrationConnection,
      "ledgerAccounts": LedgerAccountsConnection,
      "ledgerEntries": LedgerEntriesConnection,
      "ledgerEntryDataMigrations": LedgerEntryDataMigrationConnection,
      "ledgerEntryGroup": LedgerEntryGroup,
      "ledgerEntryGroups": LedgerEntryGroupsConnection,
      "lines": LedgerLinesConnection,
      "migrations": LedgerMigrationConnection,
      "name": "abc123",
      "payments": PaymentsConnection,
      "reconciliationReport": ReconciliationReport,
      "schema": Schema,
      "type": "double",
      "unreconciledTxs": TxsConnection,
      "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
    }
  }
}
```

###### Arguments

- **ledger** ([LedgerMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgermatchinput))

  An object specifying the ID of the ledger you want to query

<a id="ledgeraccount"></a>

## ledgerAccount

Get a Ledger Account by ID

###### Response
Returns a [LedgerAccount](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-ledgeraccount)

```graphql
query LedgerAccount($ledgerAccount: LedgerAccountMatchInput!) {
  ledgerAccount(ledgerAccount: $ledgerAccount) {
    balance
    balanceChange
    balanceChanges {
      ...CurrencyAmountConnectionFragment
    }
    balanceChangesDuring {
      ...BalanceChangeDuringConnectionFragment
    }
    balances {
      ...CurrencyAmountConnectionFragment
    }
    balancesDuring {
      ...HistoricalBalanceConnectionFragment
    }
    childBalance
    childBalanceChange
    childBalanceChanges {
      ...CurrencyAmountConnectionFragment
    }
    childBalanceChangesDuring {
      ...BalanceChangeDuringConnectionFragment
    }
    childBalances {
      ...CurrencyAmountConnectionFragment
    }
    childBalancesDuring {
      ...HistoricalBalanceConnectionFragment
    }
    childLedgerAccounts {
      ...LedgerAccountsConnectionFragment
    }
    clearingStatus
    consistencyConfig {
      ...LedgerAccountConsistencyConfigFragment
    }
    created
    currency {
      ...CurrencyFragment
    }
    currencyMode
    dashboardUrl
    id
    ik
    ledger {
      ...LedgerFragment
    }
    ledgerEntries {
      ...LedgerEntriesConnectionFragment
    }
    ledgerId
    lines {
      ...LedgerLinesConnectionFragment
    }
    link {
      ...LinkFragment
    }
    linkedAccount {
      ...ExternalAccountFragment
    }
    name
    ownBalance
    ownBalanceChange
    ownBalanceChanges {
      ...CurrencyAmountConnectionFragment
    }
    ownBalanceChangesDuring {
      ...BalanceChangeDuringConnectionFragment
    }
    ownBalances {
      ...CurrencyAmountConnectionFragment
    }
    ownBalancesDuring {
      ...HistoricalBalanceConnectionFragment
    }
    parentLedgerAccount {
      ...LedgerAccountFragment
    }
    parentLedgerAccountId
    path
    payment {
      ...LedgerAccountPaymentFragment
    }
    postedWindow {
      ...PostedWindowFragment
    }
    type
    unreconciledTxs {
      ...TxsConnectionFragment
    }
    workspaceId
  }
}
```

```json
{"ledgerAccount": LedgerAccountMatchInput}
```

```json
{
  "data": {
    "ledgerAccount": {
      "balance": "999999999999",
      "balanceChange": "999999999999",
      "balanceChanges": CurrencyAmountConnection,
      "balanceChangesDuring": BalanceChangeDuringConnection,
      "balances": CurrencyAmountConnection,
      "balancesDuring": HistoricalBalanceConnection,
      "childBalance": "999999999999",
      "childBalanceChange": "999999999999",
      "childBalanceChanges": CurrencyAmountConnection,
      "childBalanceChangesDuring": BalanceChangeDuringConnection,
      "childBalances": CurrencyAmountConnection,
      "childBalancesDuring": HistoricalBalanceConnection,
      "childLedgerAccounts": LedgerAccountsConnection,
      "clearingStatus": "cleared",
      "consistencyConfig": LedgerAccountConsistencyConfig,
      "created": "2007-12-03T10:15:30Z",
      "currency": Currency,
      "currencyMode": "multi",
      "dashboardUrl": "abc123",
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ik": "abc123",
      "ledger": Ledger,
      "ledgerEntries": LedgerEntriesConnection,
      "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "lines": LedgerLinesConnection,
      "link": Link,
      "linkedAccount": ExternalAccount,
      "name": "abc123",
      "ownBalance": "999999999999",
      "ownBalanceChange": "999999999999",
      "ownBalanceChanges": CurrencyAmountConnection,
      "ownBalanceChangesDuring": BalanceChangeDuringConnection,
      "ownBalances": CurrencyAmountConnection,
      "ownBalancesDuring": HistoricalBalanceConnection,
      "parentLedgerAccount": LedgerAccount,
      "parentLedgerAccountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "path": "abc123",
      "payment": LedgerAccountPayment,
      "postedWindow": PostedWindow,
      "type": "asset",
      "unreconciledTxs": TxsConnection,
      "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
    }
  }
}
```

###### Arguments

- **ledgerAccount** ([LedgerAccountMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgeraccountmatchinput))

  An object specifying the ID of the ledger account you want to query

<a id="ledgerentry"></a>

## ledgerEntry

Get Ledger Entry by ID.

###### Response
Returns a [LedgerEntry](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-ledgerentry)

```graphql
query LedgerEntry($ledgerEntry: LedgerEntryMatchInput!) {
  ledgerEntry(ledgerEntry: $ledgerEntry) {
    conditions {
      ...LedgerEntryConditionFragment
    }
    created
    dashboardUrl
    date
    description
    groups {
      ...LedgerEntryGroupFragment
    }
    hidden
    id
    ik
    isReversal
    isReversed
    ledger {
      ...LedgerFragment
    }
    ledgerId
    lines {
      ...LedgerLinesConnectionFragment
    }
    parameters
    posted
    reversalHistory {
      ...LedgerEntriesConnectionFragment
    }
    reversalPosition
    reversedAt
    reversedBy {
      ...LedgerEntryFragment
    }
    reverses {
      ...LedgerEntryFragment
    }
    tags {
      ...LedgerEntryTagFragment
    }
    type
    typeVersion
    workspaceId
  }
}
```

```json
{"ledgerEntry": LedgerEntryMatchInput}
```

```json
{
  "data": {
    "ledgerEntry": {
      "conditions": [LedgerEntryCondition],
      "created": "2007-12-03T10:15:30Z",
      "dashboardUrl": "abc123",
      "date": "2022-03-28",
      "description": "abc123",
      "groups": [LedgerEntryGroup],
      "hidden": true,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ik": "abc123",
      "isReversal": true,
      "isReversed": true,
      "ledger": Ledger,
      "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "lines": LedgerLinesConnection,
      "parameters": {"bank_name": "bank-name", "deposit_amount": "10000"},
      "posted": "2007-12-03T10:15:30Z",
      "reversalHistory": LedgerEntriesConnection,
      "reversalPosition": 2277,
      "reversedAt": "2007-12-03T10:15:30Z",
      "reversedBy": LedgerEntry,
      "reverses": LedgerEntry,
      "tags": [LedgerEntryTag],
      "type": "some-safe-string-ik",
      "typeVersion": 2277,
      "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
    }
  }
}
```

###### Arguments

- **ledgerEntry** ([LedgerEntryMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgerentrymatchinput))

  An object specifying the ID of the Ledger Entry you want to query.

<a id="ledgerentrygroup"></a>

## ledgerEntryGroup

Query a Ledger Entry Group given its Ledger, key, and value.

###### Response
Returns a [LedgerEntryGroup](https://fragment.dev/markdown/api-reference/ledger-types.md#utility-types-ledgerentrygroup)

```graphql
query LedgerEntryGroup($ledgerEntryGroup: LedgerEntryGroupMatchInput!) {
  ledgerEntryGroup(ledgerEntryGroup: $ledgerEntryGroup) {
    balances {
      ...LedgerEntryGroupBalanceConnectionFragment
    }
    created
    dashboardUrl
    key
    ledger {
      ...LedgerFragment
    }
    ledgerEntries {
      ...LedgerEntriesConnectionFragment
    }
    ledgerId
    value
  }
}
```

```json
{"ledgerEntryGroup": LedgerEntryGroupMatchInput}
```

```json
{
  "data": {
    "ledgerEntryGroup": {
      "balances": LedgerEntryGroupBalanceConnection,
      "created": "2007-12-03T10:15:30Z",
      "dashboardUrl": "abc123",
      "key": "some-safe-string-ik",
      "ledger": Ledger,
      "ledgerEntries": LedgerEntriesConnection,
      "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "value": "some-safe-string-ik"
    }
  }
}
```

###### Arguments

- **ledgerEntryGroup** ([LedgerEntryGroupMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgerentrygroupmatchinput))

<a id="ledgerentryhistory"></a>

## ledgerEntryHistory

Get the reversal history of a Ledger Entry.

###### Response
Returns a [LedgerEntriesConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-ledgerentriesconnection)

```graphql
query LedgerEntryHistory($ledgerEntry: LedgerEntryMatchInput!) {
  ledgerEntryHistory(ledgerEntry: $ledgerEntry) {
    nodes {
      ...LedgerEntryFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{"ledgerEntry": LedgerEntryMatchInput}
```

```json
{
  "data": {
    "ledgerEntryHistory": {
      "nodes": [LedgerEntry],
      "pageInfo": PageInfo
    }
  }
}
```

###### Arguments

- **ledgerEntry** ([LedgerEntryMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgerentrymatchinput))

  An object specifying the ID or IK of the Ledger Entry's reversal history to query.

<a id="ledgerline"></a>

## ledgerLine

Get LedgerLine by ID

###### Response
Returns a [LedgerLine](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-ledgerline)

```graphql
query LedgerLine($ledgerLine: LedgerLineMatchInput!) {
  ledgerLine(ledgerLine: $ledgerLine) {
    account {
      ...LedgerAccountFragment
    }
    accountId
    amount
    created
    currency {
      ...CurrencyFragment
    }
    date
    description
    externalTransferId
    externalTransferType
    externalTxId
    hidden
    id
    isReversal
    isReversed
    key
    ledger {
      ...LedgerFragment
    }
    ledgerEntry {
      ...LedgerEntryFragment
    }
    ledgerEntryId
    ledgerId
    otherTxExternalAccountExternalId
    otherTxExternalAccountId
    otherTxExternalId
    otherTxId
    posted
    reversedAt
    reversedBy {
      ...LedgerLineFragment
    }
    reverses {
      ...LedgerLineFragment
    }
    tags {
      ...LedgerLineTagFragment
    }
    tx {
      ...TxFragment
    }
    txId
    type
    workspaceId
  }
}
```

```json
{"ledgerLine": LedgerLineMatchInput}
```

```json
{
  "data": {
    "ledgerLine": {
      "account": LedgerAccount,
      "accountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "amount": "999999999999",
      "created": "2007-12-03T10:15:30Z",
      "currency": Currency,
      "date": "2022-03-28",
      "description": "abc123",
      "externalTransferId": "abc123",
      "externalTransferType": "ach",
      "externalTxId": "abc123",
      "hidden": true,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "isReversal": true,
      "isReversed": true,
      "key": "abc123",
      "ledger": Ledger,
      "ledgerEntry": LedgerEntry,
      "ledgerEntryId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ledgerId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "otherTxExternalAccountExternalId": "abc123",
      "otherTxExternalAccountId": "abc123",
      "otherTxExternalId": "abc123",
      "otherTxId": "abc123",
      "posted": "2007-12-03T10:15:30Z",
      "reversedAt": "2007-12-03T10:15:30Z",
      "reversedBy": LedgerLine,
      "reverses": LedgerLine,
      "tags": [LedgerLineTag],
      "tx": Tx,
      "txId": "abc123",
      "type": "credit",
      "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
    }
  }
}
```

###### Arguments

- **ledgerLine** ([LedgerLineMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-ledgerlinematchinput))

  An object specifying the ID of the LedgerLine you want to query

<a id="ledgers"></a>

## ledgers

Query Ledgers in workspace. Ledgers are paginated and returned in reverse-chronological order by their created date.

###### Response
Returns a [LedgersConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-ledgersconnection)

```graphql
query Ledgers(
  $after: String,
  $before: String,
  $filter: LedgersFilterSet,
  $first: Int,
  $last: Int
) {
  ledgers(
    after: $after,
    before: $before,
    filter: $filter,
    first: $first,
    last: $last
  ) {
    nodes {
      ...LedgerFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{
  "after": "abc123",
  "before": "abc123",
  "filter": LedgersFilterSet,
  "first": 2277,
  "last": 2277
}
```

```json
{
  "data": {
    "ledgers": {
      "nodes": [Ledger],
      "pageInfo": PageInfo
    }
  }
}
```

###### Arguments

- **after** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating forwards. Send endCursor from a response to get its next page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **before** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating backwards. Send startCursor from a response to get the previous page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **filter** ([LedgersFilterSet](https://fragment.dev/markdown/api-reference/ledger-types.md#filter-types-ledgersfilterset))

  Filter the Ledgers returned. Learn more about [querying Ledgers](https://fragment.dev/markdown/guides/query-data.md#ledgers).

- **first** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of Ledgers to return per page, when paginating forwards. Defaults to 20, maximum is 200.

- **last** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of Ledgers to return per page, when paginating backwards. Defaults to 20, maximum is 200.

<a id="link"></a>

## link

Get a Link by ID or a Custom Link by creation IK. Returns a BadRequestError if the Link is not found.

###### Response
Returns a [Link](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-link)

```graphql
query Link($link: LinkMatchInput!) {
  link(link: $link) {
    created
    dashboardUrl
    externalAccounts {
      ...ExternalAccountsConnectionFragment
    }
    id
    name
  }
}
```

```json
{"link": LinkMatchInput}
```

```json
{
  "data": {
    "link": {
      "created": "abc123",
      "dashboardUrl": "abc123",
      "externalAccounts": ExternalAccountsConnection,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "name": "abc123"
    }
  }
}
```

###### Arguments

- **link** ([LinkMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-linkmatchinput))

  An object containing the ID or creation IK of the Link you are querying

<a id="links"></a>

## links

Get all links in a workspace

###### Response
Returns a [LinksConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-linksconnection)

```graphql
query Links {
  links {
    nodes {
      ...LinkFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{
  "data": {
    "links": {
      "nodes": [Link],
      "pageInfo": PageInfo
    }
  }
}
```

<a id="payment"></a>

## payment

Get a single Payment by its ID or Idempotency Key in a Ledger.

###### Response
Returns a [Payment](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-payment)

```graphql
query Payment($payment: PaymentMatchInput!) {
  payment(payment: $payment) {
    amount
    attempts {
      ...PaymentAttemptsConnectionFragment
    }
    clientSecret
    created
    currency {
      ...PaymentCurrencyFragment
    }
    events {
      ...PaymentEventsConnectionFragment
    }
    id
    ik
    ledger {
      ...LedgerFragment
    }
    mode
    parameters
    status
    type
    typeVersion
  }
}
```

```json
{"payment": PaymentMatchInput}
```

```json
{
  "data": {
    "payment": {
      "amount": "999999999999",
      "attempts": PaymentAttemptsConnection,
      "clientSecret": "abc123",
      "created": "2007-12-03T10:15:30Z",
      "currency": PaymentCurrency,
      "events": PaymentEventsConnection,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ik": "some-safe-string-ik",
      "ledger": Ledger,
      "mode": "production",
      "parameters": "{\"key\":\"value\"}",
      "status": "accepted",
      "type": "some-safe-string-ik",
      "typeVersion": 2277
    }
  }
}
```

###### Arguments

- **payment** ([PaymentMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-paymentmatchinput))

  The Ledger Payment to query.

<a id="paymentmethod"></a>

## paymentMethod

Get a Payment Method saved for a User.

###### Response
Returns a [PaymentMethod](https://fragment.dev/markdown/api-reference/ledger-types.md#utility-types-paymentmethod)

```graphql
query PaymentMethod($paymentMethod: PaymentMethodMatchInput!) {
  paymentMethod(paymentMethod: $paymentMethod) {
    created
    id
    user {
      ...UserFragment
    }
  }
}
```

```json
{"paymentMethod": PaymentMethodMatchInput}
```

```json
{
  "data": {
    "paymentMethod": {
      "created": "2007-12-03T10:15:30Z",
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "user": User
    }
  }
}
```

###### Arguments

- **paymentMethod** ([PaymentMethodMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-paymentmethodmatchinput))

  The Payment Method to get.

<a id="paymentmethodsetup"></a>

## paymentMethodSetup

Get a Payment Method Setup.

###### Response
Returns a [PaymentMethodSetup!](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-paymentmethodsetup)

```graphql
query PaymentMethodSetup($paymentMethodSetup: PaymentMethodSetupMatchInput!) {
  paymentMethodSetup(paymentMethodSetup: $paymentMethodSetup) {
    clientSecret
    created
    currency {
      ...PaymentCurrencyFragment
    }
    id
    ik
    mode
    paymentMethod {
      ...PaymentMethodFragment
    }
    status
  }
}
```

```json
{"paymentMethodSetup": PaymentMethodSetupMatchInput}
```

```json
{
  "data": {
    "paymentMethodSetup": {
      "clientSecret": "abc123",
      "created": "2007-12-03T10:15:30Z",
      "currency": PaymentCurrency,
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "ik": "some-safe-string-ik",
      "mode": "production",
      "paymentMethod": PaymentMethod,
      "status": "canceled"
    }
  }
}
```

###### Arguments

- **paymentMethodSetup** ([PaymentMethodSetupMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-paymentmethodsetupmatchinput))

  The Payment Method Setup to get.

<a id="paymentmethods"></a>

## paymentMethods

List the Payment Methods a User saved in a Ledger, newest first. Deleted Payment Methods are not listed.

###### Response
Returns a [PaymentMethodsConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-paymentmethodsconnection)

```graphql
query PaymentMethods(
  $after: String,
  $before: String,
  $filter: PaymentMethodsFilterSet!,
  $first: Int,
  $last: Int
) {
  paymentMethods(
    after: $after,
    before: $before,
    filter: $filter,
    first: $first,
    last: $last
  ) {
    nodes {
      ...PaymentMethodFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{
  "after": "abc123",
  "before": "abc123",
  "filter": PaymentMethodsFilterSet,
  "first": 2277,
  "last": 2277
}
```

```json
{
  "data": {
    "paymentMethods": {
      "nodes": [PaymentMethod],
      "pageInfo": PageInfo
    }
  }
}
```

###### Arguments

- **after** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Ignored. The list is always one page.

- **before** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Ignored. The list is always one page.

- **filter** ([PaymentMethodsFilterSet!](https://fragment.dev/markdown/api-reference/ledger-types.md#filter-types-paymentmethodsfilterset))

  The User whose Payment Methods to list.

- **first** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  Ignored. The list is always one page.

- **last** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  Ignored. The list is always one page.

<a id="schema"></a>

## schema

Get a Schema by key.

###### Response
Returns a [Schema](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-schema)

```graphql
query Schema($schema: SchemaMatchInput!) {
  schema(schema: $schema) {
    key
    ledgers {
      ...LedgersConnectionFragment
    }
    name
    version {
      ...SchemaVersionFragment
    }
    versions {
      ...SchemaVersionConnectionFragment
    }
  }
}
```

```json
{"schema": SchemaMatchInput}
```

```json
{
  "data": {
    "schema": {
      "key": "some-safe-string-ik",
      "ledgers": LedgersConnection,
      "name": "abc123",
      "version": SchemaVersion,
      "versions": SchemaVersionConnection
    }
  }
}
```

###### Arguments

- **schema** ([SchemaMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-schemamatchinput))

  This contains the key of the Schema you want to retrieve.

<a id="schemas"></a>

## schemas

Retrieve all of the Schemas in the workspace.

###### Response
Returns a [SchemaConnection!](https://fragment.dev/markdown/api-reference/ledger-types.md#connection-types-schemaconnection)

```graphql
query Schemas(
  $after: String,
  $before: String,
  $first: Int,
  $last: Int
) {
  schemas(
    after: $after,
    before: $before,
    first: $first,
    last: $last
  ) {
    nodes {
      ...SchemaFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
  }
}
```

```json
{"after": "abc123", "before": "abc123", "first": 2277, "last": 2277}
```

```json
{
  "data": {
    "schemas": {
      "nodes": [Schema],
      "pageInfo": PageInfo
    }
  }
}
```

###### Arguments

- **after** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating forwards. Send endCursor from a response to get its next page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **before** ([String](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-string))

  Where to start paginating from, when paginating backwards. Send startCursor from a response to get the previous page. Learn more about [pagination](https://fragment.dev/markdown/guides/query-data.md#basics-pagination).

- **first** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of schemas to return per page, when paginating forwards. Defaults to 20, maximum is 200.

- **last** ([Int](https://fragment.dev/markdown/api-reference/ledger-types.md#scalars-and-enums-int))

  The number of schemas to return per page, when paginating backwards. Defaults to 20, maximum is 200.

<a id="tx"></a>

## tx

Get a Tx by ID

###### Response
Returns a [Tx](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-tx)

```graphql
query Tx($tx: TxMatchInput!) {
  tx(tx: $tx) {
    accountId
    amount
    currency {
      ...CurrencyFragment
    }
    date
    deletedAt
    description
    externalAccount {
      ...ExternalAccountFragment
    }
    externalAccountId
    externalId
    id
    isDeleted
    ledgerEntries {
      ...LedgerEntriesConnectionFragment
    }
    ledgerEntryIds
    ledgerLineIds
    ledgerLines {
      ...LedgerLinesConnectionFragment
    }
    link {
      ...LinkFragment
    }
    linkId
    posted
    sequence
    workspaceId
  }
}
```

```json
{"tx": TxMatchInput}
```

```json
{
  "data": {
    "tx": {
      "accountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "amount": "999999999999",
      "currency": Currency,
      "date": "2022-03-28",
      "deletedAt": "2007-12-03T10:15:30Z",
      "description": "abc123",
      "externalAccount": ExternalAccount,
      "externalAccountId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "externalId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "id": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "isDeleted": true,
      "ledgerEntries": LedgerEntriesConnection,
      "ledgerEntryIds": ["3116551f-5efc-4c9e-84ac-5a36a51b09c1"],
      "ledgerLineIds": ["3116551f-5efc-4c9e-84ac-5a36a51b09c1"],
      "ledgerLines": LedgerLinesConnection,
      "link": Link,
      "linkId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1",
      "posted": "2007-12-03T10:15:30Z",
      "sequence": 2277,
      "workspaceId": "3116551f-5efc-4c9e-84ac-5a36a51b09c1"
    }
  }
}
```

###### Arguments

- **tx** ([TxMatchInput!](https://fragment.dev/markdown/api-reference/ledger-types.md#matchinput-types-txmatchinput))

  The transaction you're querying. You can specify either: * The Fragment  ID of the transaction (id) * The external system's transaction ID (externalId) and Fragment  ID of the external account (accountId) * The external system's transaction ID (externalId), the external system's account ID (externalAccountId) and Fragment  ID of the Link (linkId)

<a id="workspace"></a>

## workspace

Get the current Workspace

###### Response
Returns a [Workspace!](https://fragment.dev/markdown/api-reference/ledger-types.md#core-types-workspace)

```graphql
query Workspace {
  workspace {
    id
    name
  }
}
```

```json
{"data": {"workspace": {"id": "abc123", "name": "abc123"\}\}}
```
