Loading...
Loading...
A Transaction in Quiltt represents financial activity associated with an Account. Account Transactions can include basic banking activities like deposits and withdrawals, as well as investment activities with associated securities and fees.
Quiltt normalizes transaction amounts to a single signed convention across every provider, so you interpret inflows and outflows the same way regardless of the upstream source.
The amount field is signed relative to the account:
amount is a CREDIT — money moving into the account, such as a deposit, refund, or incoming transfer.amount is a DEBIT — money moving out of the account, such as a purchase, withdrawal, or outgoing transfer.The entryType field mirrors the sign of amount: CREDIT for inflows and DEBIT for outflows. For example, a $56.78 card purchase has an amount of -56.78 and an entryType of DEBIT, while a $1,500.00 paycheck deposit has an amount of 1500.00 and an entryType of CREDIT.
To return only inflows or only outflows, filter by entryType instead of by the sign of amount. Pass filter: { entryType: CREDIT } for inflows or filter: { entryType: DEBIT } for outflows.
For liability accounts such as credit cards and loans, the same rule applies: a DEBIT is a purchase or draw that increases what the account holder owes, and a CREDIT is a payment toward the balance. This matches the balance sign convention, where a negative balance is the amount owed.
Transaction queries allow you to fetch data about specific transactions or lists of transactions associated with the Profile or an Account.
transactionLooks up a Transaction by its ID:
query {
transaction(id: "txn_11VgTOO9DR1vbAZxb6zBLdb") {
id
date
description
amount
entryType
status
account {
id
name
}
}
}
{
"data": {
"transaction": {
"id": "txn_11VgTOO9DR1vbAZxb6zBLdb",
"date": "2024-06-09",
"description": "GROCERY STORE",
"amount": -56.78,
"entryType": "DEBIT",
"status": "POSTED",
"account": {
"id": "acct_12tgD1YP33AwEvbdmSrcRY",
"name": "Checking Account"
}
}
}
}
transactionsThis query uses cursor-based pagination, based on the
Relay Connection Specification.
Connection page size is capped at 100 records per request. If you prefer
smaller pages, pass first and continue pagination with pageInfo.endCursor
until hasNextPage is false. See our
Pagination guide for examples and best practices.
Lists and filters the Transactions associated with the Profile:
query GetTransactions {
transactions(
first: 10,
sort: DATE_DESC,
filter: {
status: [POSTED],
entryType: DEBIT
}
) {
count
edges {
node {
id
date
description
amount
entryType
status
account {
name
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
{
"data": {
"transactions": {
"count": 42,
"edges": [
{
"node": {
"id": "txn_11VgTOO9DR1vbAZxb6zBLdb",
"date": "2024-06-09",
"description": "GROCERY STORE",
"amount": -56.78,
"entryType": "DEBIT",
"status": "POSTED",
"account": {
"name": "Checking Account"
}
}
},
...
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "cursor_value_here"
}
}
}
}
The transactions query supports various filtering options:
query {
transactions(filter: {
amount_gte: 100,
amount_lte: 500
}) {
count
nodes {
id
amount
description
}
}
}
query {
transactions(filter: {
date_gte: "2024-01-01",
date_lte: "2024-01-31"
}) {
count
nodes {
id
date
amount
}
}
}
query {
transactions(filter: {
kind: [DEPOSITORY, CREDIT]
}) {
count
nodes {
id
account {
name
kind
}
}
}
}
Transaction mutations allow you to update individual Transactions.
transactionUpdateUpdates a Transaction with new metadata. This is useful for storing additional information about the Transaction:
mutation TransactionUpdate {
transactionUpdate(
input: {
id: "txn_11VgTOO9DR1vbAZxb6zBLdb",
metadata: {
category: "Groceries",
notes: "Weekly shopping"
}
}
) {
success
record {
id
metadata
}
}
}
{
"data": {
"transactionUpdate": {
"success": true,
"record": {
"id": "txn_11VgTOO9DR1vbAZxb6zBLdb",
"metadata": {
"category": "Groceries",
"notes": "Weekly shopping"
}
}
}
}
}
Transactions include remote data from various providers and enrichment services. You can access this data through the remoteData field:
query {
transaction(id: "txn_11VgTOO9DR1vbAZxb6zBLdb") {
id
remoteData {
ntropy {
enrichment {
response {
categories {
general
}
entities {
counterparty {
name
logo
website
}
}
}
timestamp
}
}
mx {
transaction {
response {
guid
description
originalDescription
}
timestamp
}
}
}
}
}
See the Remote Data guide for more information about accessing and working with provider-specific transaction data.