GraphQL
Object Types
Object types represent complex objects with multiple fields and can be queried for specific data.
AbortedSummary
Fields
count - Int! | Number of aborted requests. |
errors - [FailedBulkExecutionError] | Errors from the FAILED_N.json files. |
Account
Accounts model all of the economic activity that your ledger provides.
The chart of accounts is the basis for creating balance sheets, P&L reports, and for understanding the balances for the customer and business entities your business services.
Accounts can be organized into sets with the AccountSet type. Hierarchical tree structures which roll up balances across many accounts can be modeled by nesting sets within other sets.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format ac:<key> where key is base64(json({ 1: accountId })) . |
accountId - UUID! | Unique identifier for the account. |
externalId - String! | Allows specifying a unique external ID associated with this account. |
name - String! | Account name. Examples: "Bill Pay Settlement" , "Courtesy Credit" |
code - String! | Shorthand code for the account, often an abbreviated version of the account name. Example: 'ACH_RECON' for an account named 'ACH Reconciliation'. |
description - String! | Description of the account. |
status - AccountStatus! | Current status for the account. |
| Flag indicating whether this account uses a "debit normal" or a "credit normal" balance. In double-entry accounting, accounts with a debit normal balance use the balance calculation Accounts with a credit normal balance, in contrast, calculate their balance with the equation |
metadata - JSON | Metadata attached to this account. |
config - AccountConfig! | System config for this account. |
created - Timestamp! | Date and time when the account was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this account. Previous versions are tracked in history . |
| Reference to the balances for this account. Accounts have balances across all three layers: SETTLED, PENDING, and ENCUMBRANCE. Each balance reflects the current total debits and credits for all entries in this account within the specified journal and currency. |
balance - Balance | Reference to the balance for a specific journal and currency (defaults to "USD"). |
entries - EntryConnection! | All ledger entries associated with this account. |
sets - AccountSetConnection! | Accounts can be organized into sets. Each account can belong to zero or multiple account sets. |
history - AccountConnection! | History of changes to this Account record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
velocity - [VelocityBalance] |
AccountConfig
System configuration for an account.
Fields
enableConcurrentPosting - Boolean | When true , allow concurrent posting to the account. See BalanceType for balance retrieval options available for concurrent-enabled accounts. Defaults to false . |
isAccountSet - Boolean | When true , indicates this account is an underlying account for an account set. |
AccountConnection
Connection to a list of Account nodes. Access Account nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Accounts model all of the economic activity that your ledger provides. The chart of accounts is the basis for creating balance sheets, P&L reports, and for understanding the balances for the customer and business entities your business services. Accounts can be organized into sets with the AccountSet type. Hierarchical tree structures which roll up balances across many accounts can be modeled by nesting sets within other sets. |
edges - [AccountConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Account nodes. They contain a reference to the Account node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
AccountConnectionEdge
Edges represent links connecting a parent or query field to a list of Account nodes. They contain a reference to the Account node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Account | Reference to the Account node at this edge. |
AccountSet
A set of accounts.
Account sets contain members which can include accounts as well as other account sets.
Every account set has multiple balances which represent the sum of all balances of member accounts and member account sets. Like balances for accounts, account set balances are computed for every currency used by the entries posted to accounts in a set and all of its sub-sets.
Because account sets are tied to a specific journal, they only compute balances using entries posted to their journal.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format as:<key> where key is base64(json({ 1: accountSetId })) . |
accountSetId - UUID! | Unique identifier for the set. |
journalId - UUID! | The journal for the set. Account sets are confined to a single journal and roll up balances for entries on their journal. Account sets can only contain other sets using the same journal. |
name - String! | Name for the set. |
description - String! | Description of the account set. |
metadata - JSON | Metadata attached to this account set. |
config - AccountSetConfig! | System config for this account set. |
| Indicates whether this account set uses a "debit normal" or a "credit normal" balance. In double-entry accounting, a debit normal balance uses the calculation A credit normal balance, in contrast, is calculated with the equation |
created - Timestamp! | Date and time when the account set was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this account set. Previous versions are tracked in history . |
balance - Balance | Reference to the balance for a specific currency (defaults to "USD"). |
| Reference to the balances for this account set. Each balance reflects the current sum of debits and credits for all entries on accounts in this set and all accounts in any sub-sets, on the current layer and all layers above. Because account sets are tied to a specific journal, they only compute balances using entries posted to their journal. |
entries - EntryConnection! | All ledger entries associated with accounts in this set and in all subsets. |
history - AccountSetConnection! | History of changes to this AccountSet record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
members - AccountSetMemberConnection! | All members of the account set. Sets can include other account sets. |
sets - AccountSetConnection! | Account sets can be organized into sets. Each account set can belong to zero or multiple account sets. |
velocity - [VelocityBalance] | Check the velocity balance for this account set. |
AccountSetConfig
System configuration for an account set.
Fields
enableConcurrentPosting - Boolean | When true , allow concurrent posting to the account. See BalanceType for balance retrieval options available for concurrent-enabled accounts. Defaults to false . |
AccountSetConnection
Connection to a list of AccountSet nodes. Access AccountSet nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| A set of accounts. Account sets contain members which can include accounts as well as other account sets. Every account set has multiple balances which represent the sum of all balances of member accounts and member account sets. Like balances for accounts, account set balances are computed for every currency used by the entries posted to accounts in a set and all of its sub-sets. Because account sets are tied to a specific journal, they only compute balances using entries posted to their journal. |
edges - [AccountSetConnectionEdge]! | Edges represent links connecting a parent or query field to a list of AccountSet nodes. They contain a reference to the AccountSet node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
AccountSetConnectionEdge
Edges represent links connecting a parent or query field to a list of AccountSet nodes. They contain a reference to the AccountSet node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - AccountSet | Reference to the AccountSet node at this edge. |
AccountSetMemberConnection
Connection to a list of AccountSetMember nodes. Access AccountSetMember nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
nodes - [AccountSetMember!]! | Account set members can be of type Account or AccountSet. |
edges - [AccountSetMemberConnectionEdge]! | Edges represent links connecting a parent or query field to a list of AccountSetMember nodes. They contain a reference to the AccountSetMember node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
AccountSetMemberConnectionEdge
Edges represent links connecting a parent or query field to a list of AccountSetMember nodes. They contain a reference to the AccountSetMember node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - AccountSetMember | Reference to the AccountSetMember node at this edge. |
AchConfiguration
Fields
configId - UUID! | Unique identifier for this configuration. |
endpointId - UUID! | Endpoint to use for decisioning this ACH file. |
settlementAccountId - UUID! | ACH Settlement Account. |
exceptionAccountId - UUID! | Account to post to when an exception occurs, such as a Velocity Control or Account in a locked state. Funds in this account will be returned. |
suspenseAccountId - UUID! | Account to post to when an account is not found. Funds in this account will be returned. |
journalId - UUID! | Journal to post settlements into. |
odfiHeaderConfiguration - AchOdfiHeaderConfiguration! | ACH Processor immediate destination/origin configuration. |
timeZone - String! | IANA Timezone identifier for the configuration. Example: "America/Chicago" |
version - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
AchFileInfo
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format afi:<key> where key is base64(json({ 1: fileId })) . |
fileId - UUID! | Unique identifier derived from fileKey to indentify a particular file being processed. |
fileKey - String! | The file key being processed. |
fileVersion - String! | TBD |
fileDate - String! | File date from header of ACH file. |
fileModifier - String! | File modifier form header of ACH file. |
configId - UUID! | The ACH configuration id used to process this file. |
configVersion - Int! | The version number of the configuration used to process this file. |
fileType - AchFileType! | The type of file being processed. |
processingStatus - AchFileProcessingStatus! | The last reported processing status of this file. |
processingDetail - String! | The last string message of the processing detail of this file. |
processingStatistics - AchProcessingStatistics! | Stats about the items in process for this file. |
metadata - JSON | Metadata attached to this file process. |
created - Timestamp! | Timestamp of when this file info was created. |
modified - Timestamp! | Timestamp of the last modification to this file info. |
version - Int! | The current version number of this FileInfo . Previous versions are tracked in history . |
history - AchFileInfoConnection! | History of changes to this ACH file info. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
AchFileInfoConnection
Connection to a list of ACH file nodes. Access Account nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
nodes - [AchFileInfo]! | |
edges - [AchFileInfoConnectionEdge]! | Edges represent links connecting a parent or query field to a list of ACH file nodes. They contain a reference to the ACH file node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
AchFileInfoConnectionEdge
Edges represent links connecting a parent or query field to a list of ACH file nodes. They contain a reference to the ACH file node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - AchFileInfo | Reference to the Account node at this edge. |
AchGeneratedFile
Fields
fileKey - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
AchOdfiHeaderConfiguration
Fields
immediateDestination - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
immediateDestinationName - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
immediateOrigin - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
immediateOriginName - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
AchProcessedFile
Fields
fileId - UUID! | 128-bit universally unique identifier (UUID). Used for most ID fields on records. |
AchProcessingStatistics
Fields
numEntriesUnprocessed - Int! | The number of entries remaining that need to respond to create webhook. |
Balance
Balances are auto-calculated sums of the entries for a given account.
Every balance record maintains a drBalance
for entries on the debit side of the ledger and a crBalance
for credit entries.
Additionally, every account has a normalBalance
, which is equal to crBalance - drBalance
for credit normal accounts, and drBalance - crBalance
for debit normal accounts.
Each account can have balances across all three layers: SETTLED, PENDING, and ENCUMBRANCE.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format ba:<key> where key is base64(json({ 1: accountId, 2: journalId, 3: currency })) The journalId and currency are optional and will use the default values if they are missing |
journalId - UUID! | ID of the journal within which the balance is calculated. |
accountId - UUID! | ID of the account for which the balance is calculated. |
entryId - UUID! | ID of the most recent entry used to calculate the balance. |
| The currency of the balance amounts. Balances represent the sum of entries using the same currency. Multi-currency ledgers will therefore have different balances for each currency. |
settled - BalanceAmount! | The balance amounts on the settled layer. |
pending - BalanceAmount! | The balance amounts on the pending layer. |
encumbrance - BalanceAmount! | The balance amounts on the encumbrance layer. |
dimensions - JSON | The dimensions that make up this balance calculation |
calculationId - UUID! | The calculationId of this balance |
available - BalanceAmount! | The balance amounts available by combining the provided layer with all layers above. |
created - Timestamp! | Date and time when the balance was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this balance. Previous versions are tracked in history . |
account - Account! | Reference to the balance's account. |
entry - Entry! | Reference to the most recent entry used to calculate the balance. |
entries - EntryConnection! | All ledger entries for this balance. |
journal - Journal! | Reference to the balance's journal. |
history - BalanceConnection! | History of changes to this Balance record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
BalanceAmount
Fields
drBalance - Money! | Sum of all amounts for entries on the DEBIT side of the ledger. |
crBalance - Money! | Sum of all amounts for entries on the CREDIT side of the ledger. |
| The "normal balance" for an account is different for credit normal and debit normal accounts. For credit normal accounts, the normal balance is equal to |
entryId - UUID! | ID of the most recent entry used to calculate the balance on this layer. |
modified - Timestamp! | Time of the last change of balance on this layer. |
BalanceConnection
Connection to a list of Balance nodes. Access Balance nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Balances are auto-calculated sums of the entries for a given account. Every balance record maintains a Additionally, every account has a Each account can have balances across all three layers: SETTLED, PENDING, and ENCUMBRANCE. |
edges - [BalanceConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Balance nodes. They contain a reference to the Balance node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
BalanceConnectionEdge
Edges represent links connecting a parent or query field to a list of Balance nodes. They contain a reference to the Balance node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Balance | Reference to the Balance node at this edge. |
BalanceLimit
Fields
layer - Expression! | The layer this balance limit is enforced at. |
amount - Expression! | The maximum amount at this layer that can be spent. |
NormalBalanceType - Expression! | The direction this balance enforces on. |
start - Expression | The timestamp at which this balance limit begins to be effective. |
end - Expression | The timestamp at which this balance limit ceases to be effective. |
BatchExecuteStatementOutput
Fields
createdAt - Timestamp! | RFC3339-compliant UTC timestamp. |
database - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
dbUser - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
id - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
BulkQueryExecution
Fields
name - String! | Human readable name of this bulk execution. |
key - String! | Key to variables file to use. |
executionId - UUID! | Unique Identifier for this execution of a bulk query. |
query - String! | Parameterized GraphQL query string to execute. |
status - BulkQueryExecutionStatus! | Status of this execution. |
resultKeys - [String] | Set when status is COMPLETE , lists the keys to download the results files. |
error - String | If status in error, a diagnostic message for the cause of the error. |
summary - BulkQueryExecutionSummary | Summary of the bulk query execution. Populated on COMPLETE or ERROR. |
BulkQueryExecutionSummary
Fields
total - Int! | total number of requests in this execution. |
executed - ExecutedSummary! | Summary of executed requests. |
aborted - AbortedSummary! | Summary of aborted requests due to aborted execution. The requests in FAILED_N.json may not have been executed. The requests in PENDING_N.json were not executed. |
Calculation
Fields
id - ID! | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4" ) or integer (such as 4 ) input value will be accepted as an ID. |
calculationId - UUID! | Unique identifier for this calculation. |
code - String! | Unique shorthand code for this calculation. |
description - String! | Human readable description of this calculation. |
dimensions - [PartitionKey]! | Group by these values to index the calculation. |
condition - Expression | Boolean expression indicating if a balance entry should be written. |
created - Timestamp! | Date and time when the balance calculation was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this calculation. Previous versions are tracked in history . |
backfillStatus - CalculationBackfillStatus! | The current backfill status. |
CalculationConnection
Connection to a list of Calculation nodes. Access Calculation nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
nodes - [Calculation]! | |
edges - [CalculationConnectionEdge]! | |
pageInfo - PageInfo! |
CalculationConnectionEdge
Fields
cursor - String! | Cursor position at this edge. |
node - Calculation | Reference to the Calculation node at this edge. |
CancelStatementOutput
Fields
status - Boolean | The Boolean scalar type represents true or false . |
Client
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format cl:<key> where key is the base64(json({ 1: principal })) |
principal - String! | Principal that this client applies to. If you're supplying your own OIDC this will be the iss claim on your JWT. If using Twisp IAM/OIDC token exchange, this will be the IAM principal you signed with, typically a role ARN. |
name - String! | Unique name of the client. |
policies - [Policy]! | The policies to evaluate. |
ClientConnection
Connection to a list of Client nodes. Access Client nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
nodes - [Client]! | |
edges - [ClientConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Client nodes. They contain a reference to the Client node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
ClientConnectionEdge
Edges represent links connecting a parent or query field to a list of Client nodes. They contain a reference to the Client node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Client | Reference to the Client node at this edge. |
DescribeStatementOutput
Fields
createdAt - Timestamp! | RFC3339-compliant UTC timestamp. |
updatedAt - Timestamp! | RFC3339-compliant UTC timestamp. |
duration - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
resultRows - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
resultSize - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
status - SqlStatementStatus! | |
hasResultSet - Boolean | The Boolean scalar type represents true or false . |
database - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
dbUser - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
error - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
id - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
queryString - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
workgroupName - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
subStatements - [DescribeStatementOutput_SubStatement] |
DescribeStatementOutput_SubStatement
Fields
createdAt - Timestamp! | RFC3339-compliant UTC timestamp. |
updatedAt - Timestamp! | RFC3339-compliant UTC timestamp. |
duration - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
resultRows - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
resultSize - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
status - SqlStatementStatus! | |
hasResultSet - Boolean | The Boolean scalar type represents true or false . |
error - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
id - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
queryString - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
DescribeTableOutput
Fields
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
columnList - [SQLColumnMetadata] |
Download
Fields
key - String! | Unique identifier of file. e.g. path/to/file.json |
downloadURL - String! | Presigned URL for downloading the file. |
downloadURLExpiration - Timestamp! | Timestamp of when presigned url expires. |
downloadHeaders - JSON! | Headers to include in the upload request. |
contentType - String! | Content-Type of the file. |
Endpoint
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format ep:<key> where key is base64(json({ 1: endpointId })) . |
endpointId - UUID! | Unique identifier for the endpoint. |
status - EndpointStatus! | Current status for the endpoint. |
endpointType - EndpointType! | The type of endpoint this represents. |
url - String! | The url for the endpoint. e.g. https://yourdomain.com/path/to/hooks |
subscription - [String!]! | The events this is subscribed to. |
description - String! | Description of this endpoint. |
signingSecret - String! | The secret Twisp will use to sign payloads with via HMAC/SHA256. |
| Map of named CEL expressions specifying conditions for sending an event to the endpoint. Record is only sent if all expressions evaluate to true, i.e. they are combined with a logical AND. Each expression must return a boolean value. |
created - Timestamp! | When this endpoint was created. |
modified - Timestamp! | When this endpoint was last updated. |
version - Int! | The current version of the endpoint. |
EndpointConnection
Fields
nodes - [Endpoint]! | |
edges - [EndpointConnectionEdge]! | |
pageInfo - PageInfo! |
EndpointConnectionEdge
Fields
cursor - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
node - Endpoint |
Entry
An entry represents one side of a transaction in a ledger. In other systems, these may be called "ledger lines" or "journal entries".
Entries always have an account, amount, and direction (CREDIT or DEBIT). In addition, Twisp uses the concept of "entry types" to assign every entry to a categorical type.
Twisp enforces double-entry accounting, which in practice means that entries can only be entered in the context of a Transaction. Posting a transaction will create at least 2 ledger entries.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format en:<key> where key is base64(json({ 1: entryId })) . |
entryId - UUID! | Unique identifier for the ledger entry. |
transactionId - UUID! | Unique identifier for the transaction which posted this entry. Every entry is associated with a transaction. |
accountId - UUID! | ID of the account to be debited/credited. |
journalId - UUID! | The journal identifier of the ledger entry. |
entryType - EntryType! | Type code for the entry. |
layer - Layer! | The layer on which this entry is recorded (SETTLED, PENDING, or ENCUMBRANCE). |
units - Decimal! | Syntactic sugar for amount { units } . |
currency - CurrencyCode! | Syntactic sugar for amount { currency } . |
amount - Money! | Amount of the ledger entry using the currency-supported Money type. |
direction - DebitOrCredit! | The side of the ledger (DEBIT or CREDIT) this entry is posted on. |
| The order in which this entry was posted within the context of a transaction. This order is auto-generated at time of posting and is determined by the position of the entries posted within the transaction. |
description - String! | Description of the ledger entry. |
metadata - JSON | Arbitrary structured data about this entry. |
created - Timestamp! | Date and time when the entry was posted. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this entry. Previous versions are tracked in history . |
account - Account! | Reference to the account to be debited/credited. |
balance - Balance | Reference to the resulting balance from the entry. |
journal - Journal! | Reference to the journal of the entry. |
history - EntryConnection! | History of changes to this Entry record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
transaction - Transaction! | Reference to the transaction which posted this entry. |
EntryConnection
Connection to a list of Entry nodes. Access Entry nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| An entry represents one side of a transaction in a ledger. In other systems, these may be called "ledger lines" or "journal entries". Entries always have an account, amount, and direction (CREDIT or DEBIT). In addition, Twisp uses the concept of "entry types" to assign every entry to a categorical type. Twisp enforces double-entry accounting, which in practice means that entries can only be entered in the context of a Transaction. Posting a transaction will create at least 2 ledger entries. |
edges - [EntryConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Entry nodes. They contain a reference to the Entry node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
EntryConnectionEdge
Edges represent links connecting a parent or query field to a list of Entry nodes. They contain a reference to the Entry node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Entry | Reference to the Entry node at this edge. |
ExecuteStatementOutput
Fields
createdAt - Timestamp! | RFC3339-compliant UTC timestamp. |
database - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
dbUser - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
id - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
ExecuteStatementSyncOutput
Fields
records - [SQLRecord] | |
columnMetadata - [SQLColumnMetadata] | |
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
totalNumRows - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
ExecutedSummary
Fields
count - Int! | Number of executed requests. |
status - JSON | Of the requests executed, counts of results by status error code. Successful are "OK". If only keys are "OK" and "UNIQUE_KEY_VIOLATION" all the requests in the bulk execution succeeded or already exists. |
FailedBulkExecutionError
Fields
error - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
cause - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
GetStatementResultOutput
Fields
records - [SQLRecord] | |
columnMetadata - [SQLColumnMetadata] | |
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
totalNumRows - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
Group
Grouping of users within an organization.
Groups are used to manage access control and permissions for users. Each group can have one or more associated policies that define the allowed actions for its member users.
Users can belong to multiple groups, and their permissions are determined by the combined set of policies from all their groups.
Fields
id - UUID! | Unique ID for the group. |
organizationId - UUID! | The unique identifier of the organization to which the group belongs. |
name - String! | A human-friendly name for the group, such as 'Admins' or 'DataAnalysts'. |
description - String! | A brief description of the group's purpose, intended to provide additional context. |
| A set of policies as a JSON list that define the permissions granted to users within this group. The structure of these policies matches the Policy type, but serialized as a JSON string. Example:
|
version - Int! | The current version number of this group. Updates will increment the version. |
GroupConnection
Connection to a list of Group nodes. Access Group nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Grouping of users within an organization. Groups are used to manage access control and permissions for users. Each group can have one or more associated policies that define the allowed actions for its member users. Users can belong to multiple groups, and their permissions are determined by the combined set of policies from all their groups. |
edges - [GroupConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Group nodes. They contain a reference to the Group node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
GroupConnectionEdge
Edges represent links connecting a parent or query field to a list of Group nodes. They contain a reference to the Group node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Group | Reference to the Group node at this edge. |
Index
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format ix:<key> where key is base64(json({ 1: name, 2: on })) . |
name - String! | Unique identifier of this index. Typically human readable. |
on - IndexOnEnum! | The type of record this index applies to. |
unique - Boolean! | Indicates if this index is unique. |
search - Boolean! | Indicates if this index is a search index. |
historical - Boolean! | Indicates if this index is historical, i.e. created with schema.createHistoricalIndex . |
partition - [PartitionKey]! | The partition key used for this index. |
range - [IndexKey]! | The range key to use for query/sorting. |
| Map of named CEL expressions specifying the conditions for including a record in this index. Records are only included in the index if all expressions evaluate to For example, a custom index on a |
indexId - UUID! | Twisp generated internal index identifier. |
version - Int! | The current version number of this index. |
IndexConnection
Connection to a list of Index nodes. Access Index nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
nodes - [Index]! | |
edges - [IndexConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Index nodes. They contain a reference to the Index node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
IndexConnectionEdge
Edges represent links connecting a parent or query field to a list of Index nodes. They contain a reference to the Index node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Index | Reference to the Index node at this edge. |
IndexKey
A named expression used for sorting and range conditions.
Fields
alias - String! | Identifier for this key. |
| CEL expression which resolves to the value that is to be sorted. Within the expression, the |
sort - SortOrder! | Whether the sort is in ascending or descending order. |
Journal
Journals allow for the organizing of transactions within separate "books".
In many cases, users only need a single journal. For this reason, Twisp always contains a default journal with code DEFAULT
.
Journals can be used for a variety of functions. For example, users may create separate journals for different currencies, or product-specific journals.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format jl:<key> where key is base64(json({ 1: journalId })) . |
journalId - UUID! | Unique identifier for the journal. |
name - String! | Name for the journal. |
description - String! | Description of the journal. |
status - Status! | Operational status of the journal. ACTIVE journals can be written to with postTransaction , whereas LOCKED journals do not allow transactions to be posted to them. |
code - String | Optional unique code for the journal. The default journal uses the code DEFAULT . |
config - JournalConfig! | Journal specific configuration options for transactions and balances recorded in this journal. |
created - Timestamp! | Date and time when the journal was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this journal. Previous versions are tracked in history . |
history - JournalConnection! | History of changes to this Journal record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
JournalConfig
System configuration for a journal.
Fields
enableEffectiveBalances - Boolean! | When true , records point-in-time effective balances for all accounts in the journal. Defaults to false . |
JournalConnection
Connection to a list of Journal nodes. Access Journal nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Journals allow for the organizing of transactions within separate "books". In many cases, users only need a single journal. For this reason, Twisp always contains a default journal with code Journals can be used for a variety of functions. For example, users may create separate journals for different currencies, or product-specific journals. |
edges - [JournalConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Journal nodes. They contain a reference to the Journal node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
JournalConnectionEdge
Edges represent links connecting a parent or query field to a list of Journal nodes. They contain a reference to the Journal node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Journal | Reference to the Journal node at this edge. |
Limit
Fields
timestampSource - Expression | A literal CEL expression to be evaluated. |
balance - [BalanceLimit!]! |
ListDatabasesOutput
Fields
databases - [String] | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
ListSchemasOutput
Fields
schemas - [String] | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
ListStatementsOutput
Fields
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
statements - [ListStatementsOutput_Statement] |
ListStatementsOutput_Statement
Fields
id - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
createdAt - Timestamp! | RFC3339-compliant UTC timestamp. |
isBatchStatement - Boolean | The Boolean scalar type represents true or false . |
queryString - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
queryStrings - [String] | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
statementName - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
status - SqlStatementStatus! | |
updatedAt - Timestamp! | RFC3339-compliant UTC timestamp. |
ListTablesOutput
Fields
nextToken - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
tables - [ListTablesOutput_Table] |
ListTablesOutput_Table
Fields
name - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
schema - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
type - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
LithicTransactionBalance
Fields
transaction - Transaction! | The transaction that Twisp posted. |
balance - Balance! | The balance for the account. |
Money
Money type with multi-currency support.
Monetary amounts are represented as decimal units of currency. Fields which use the Money type can be converted to a symbolic representations by specifying a MoneyFormatInput on the formatted
field.
Here is an example table showing different currencies which each have their own divisions of units represented. Japanese yen (JPY) don't have a decimal minor unit, and Bahraini dinars (BHD) use 3 minor unit decimal places. The formatted
column uses the default values for a an en-US
locale.
Currency | Units | Formatted |
---|---|---|
USD | 289.27 | $289.27 |
BHD | 28.927 | 28.927 BD |
JPY | 28927 | ¥28927 |
Fields
units - Decimal! | Decimal is a fixed-precision data type supporting exact representation of numeric values. |
currency - CurrencyCode! | ISO 4217 standard three-character code indicating the currency. |
formatted - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
Organization
The organization associated with the auth context.
Organizations have many tenants, groups, and users.
Fields
id - UUID! | Unique ID for the organization. |
name - String! | Name of the organization. |
description - String! | Description of the organization. |
version - Int! | The current version number of this organization. |
PageInfo
Fields
hasPreviousPage - Boolean! | True if there are nodes in the connection before the current page / start cursor. |
hasNextPage - Boolean! | True if there are nodes in the connection after the current page / end cursor. |
startCursor - String | Query cursor for the first node in the current page. |
endCursor - String | Query cursor for the last node in the current page. |
ParamDefinition
Definition of a parameter that can be used when posting transactions using this tran code.
These definitions are used to validate the provided params
in a TransactionInput to ensure that only the right data is applied to the entries created.
With CEL, you can access the post-time values of these parameters inside of values in transaction
and entries
.
Fields
name - String! | Name for the parameter. This is how values passed are accessed. For example, a parameter with name fromAccount can be accessed in the accountId field of an TranCodeEntryInput with params.fromAccount . |
type - ParamDataType! | Data type for the parameter. |
default - Expression | Default value for the parameter. If not provided, the parameter is consider a 'required' parameter, and a value must be provided when posting a transaction. |
description - String | Describe the purpose of this parameter. Help an engineer out. |
PartitionKey
A named expression defining a partition key.
Fields
alias - String! | Identifier for this partition key. |
| CEL expression which resolves to the value that is to be used for the partition key. Within the expression, the |
Policy
Fields
effect - PolicyEffect! | Whether this Policy is an ALLOW or DENY . |
actions - [PolicyAction]! | The set of actions to allow or deny." |
resources - [String]! | The resources to allow or deny. |
assertions - ExpressionMap | A map of expressions to evaluate this policy with. |
PolicyAssertion
Fields
name - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
value - Expression! | A literal CEL expression to be evaluated. |
SQLColumnMetadata
Fields
columnDefault - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
isCaseSensitive - Boolean! | The Boolean scalar type represents true or false . |
isCurrency - Boolean! | The Boolean scalar type represents true or false . |
isSigned - Boolean! | The Boolean scalar type represents true or false . |
label - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
length - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
name - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
nullable - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
precision - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
scale - Int! | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
schemaName - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
tableName - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
typeName - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
SQLField
Fields
type - SQLField_Type! | |
value - SQLField_Value |
SQLField_Value
Fields
isNull - Boolean | The Boolean scalar type represents true or false . |
bytes - Uint8Array | Uint8Array is a []uint8 of big-endian encoded binary data |
bool - Boolean | The Boolean scalar type represents true or false . |
double - Float | The Float scalar type represents signed double-precision fractional values as specified by IEEE 754. |
int - Int | The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. |
str - String | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
SQLRecord
Fields
fields - [SQLField] |
Schedule
Fields
jobType - JobType! | The job type to create the schedule for. Currently only one schedule per job-type is supported. |
jobName - String! | A job name that's unique per job type. |
principal - String! | The Twisp principal to run the job on a schedule. This should have a matching client policy. |
scheduleExpression - String! | A schedule expression to run this job on. cron/rate/once supported see https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html for valid syntax. |
| The timezone to run this schedule on based on https://www.iana.org/time-zones example: "America/Los_Angeles" or "UTC" Supports ST rules defined in https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html |
metadata - JSON! | JSON metadata to pass to running job. |
Tenant
A Tenant represents an environment within an organization, typically associated with a specific application, service, or set of resources. Tenants contain isolated ledgers, each deployed to a specific region.
Tenants are useful for isolating data and configurations between different environments. Each tenant is uniquely identified by an accountId, which in combination with an AWS region, is used to calculate the database tenant for data isolation purposes.
Fields
id - UUID! | Unique ID for the tenant. |
organizationId - UUID! | ID of the tenant's parent organization. |
| A globally unique identifier representing an environment within the organization. This accountId, when combined with an AWS region, is used to calculate the database tenant. |
name - String! | A human-friendly name for the tenant, used for display purposes and easier identification. |
description - String! | A brief description of the tenant, providing additional context about its purpose or characteristics. |
version - Int! | The current version number of this tenant. Updates will increment the version. |
TenantConnection
Connection to a list of Tenant nodes. Access Tenant nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| A Tenant represents an environment within an organization, typically associated with a specific application, service, or set of resources. Tenants contain isolated ledgers, each deployed to a specific region. Tenants are useful for isolating data and configurations between different environments. Each tenant is uniquely identified by an accountId, which in combination with an AWS region, is used to calculate the database tenant for data isolation purposes. |
edges - [TenantConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Tenant nodes. They contain a reference to the Tenant node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
TenantConnectionEdge
Edges represent links connecting a parent or query field to a list of Tenant nodes. They contain a reference to the Tenant node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Tenant | Reference to the Tenant node at this edge. |
TranCode
Transaction Codes (tran codes) are how financial engineers do double-entry accounting. They encode the basic patterns for a type of transaction as a predictable and repeatable formula.
You can think of tran codes as function signatures which define how a transaction acts upon the ledger.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format tc:<key> where key is base64(json({ 1: tranCodeId })) . |
tranCodeId - UUID! | Internal UUID for the transaction code record. |
| The tran code represented as a unique string identifier. The code itself is a shorthand for the behavior represented. For example, the code |
description - String! | Explanation of what this tran code represents and how it should be used. This provides documentation for the tran code. |
params - [ParamDefinition] | Defines the parameters that can be used when posting transactions using this tran code. |
transaction - TranCodeTransaction! | Definition of the transaction posted when this tran code is invoked. |
entries - [TranCodeEntry!]! | Definition of the entries written when transactions are posted with this tran code. |
status - Status! | Operational status of the tran code. |
metadata - JSON | Metadata attached to this tran code. |
created - Timestamp! | Date and time when the tran code was first created. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this account. Previous versions are tracked in history . |
history - TranCodeConnection! | History of changes to this TranCode record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
TranCodeConnection
Connection to a list of TranCode nodes. Access TranCode nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Transaction Codes (tran codes) are how financial engineers do double-entry accounting. They encode the basic patterns for a type of transaction as a predictable and repeatable formula. You can think of tran codes as function signatures which define how a transaction acts upon the ledger. |
edges - [TranCodeConnectionEdge]! | Edges represent links connecting a parent or query field to a list of TranCode nodes. They contain a reference to the TranCode node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
TranCodeConnectionEdge
Edges represent links connecting a parent or query field to a list of TranCode nodes. They contain a reference to the TranCode node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - TranCode | Reference to the TranCode node at this edge. |
TranCodeEntry
Definition of an entry written when transactions are posted with this tran code.
Fields
entryType - Expression! | Entry type for an entry written when this tran code is invoked. |
accountId - Expression! | Account ID for an entry written when this tran code is invoked. |
layer - Expression! | Layer for an entry written when this tran code is invoked. |
direction - Expression! | Direction for an entry written when this tran code is invoked. |
units - Expression! | Units of currency for an entry written when this tran code is invoked. |
currency - Expression! | Currency used for an entry written when this tran code is invoked. |
description - Expression | Description for an entry written when this tran code is invoked. |
metadata - Expression | Metadata for entries posted with this tran code. |
condition - Expression | A boolean expression that indicates if this entry should be written. @example("params.amount > decimal(0.00)") |
TranCodeTransaction
Definition of the transaction posted when this tran code is invoked.
Fields
effective - Expression! | Effective date for transactions posted with this tran code. |
journalId - Expression! | Journal ID for transactions posted with this tran code. |
correlationId - Expression | Correlation ID for transactions posted with this tran code. |
externalId - Expression | External ID for transactions posted with this tran code. |
description - Expression! | Description for transactions posted with this tran code. |
metadata - Expression! | Metadata for transactions posted with this tran code. |
Transaction
Transactions record all accounting events in the ledger. In Twisp, the only way to write to a ledger is through a transaction.
Every transaction writes two or more entries to the ledger in standard double-entry accounting practice.
Twisp expands upon the basic principle of an accounting transaction with additional features like transaction codes and correlations.
Fields
id - ID! | Globally unique identifier for a record to support Global Object Identification. Uses format tx:<key> where key is base64(json({ 1: transactionId })) . |
transactionId - UUID! | Unique identifier for the transaction. |
tranCodeId - UUID! | Unique identifier for the tran code used by this transaction. |
journalId - UUID! | Unique identifier for the journal this transaction applies to. |
| Allows related transactions to be grouped. When a transaction is posted without a For example, consider the following (simplified) list of transactions: (ID: 1) Place card hold for $50 on account A (correlation ID: 1) (ID: 2) Place card hold for $20 on account B (correlation ID: 2) (ID: 3) Release card hold for $50 on account A (correlation ID: 1) Because transaction (3) is related to transaction (1), it shares the same correlation ID. This way, we can easily observe the entire history of a multi-transaction event by querying the correlated transactions. |
externalId - String! | Allows specifying a unique external ID associated with this transaction. |
effective - Date! | The effective date records when the transaction is recorded as occurring for accounting purposes. Determines the accounting period within which the transaction is counted. |
description - String! | Description of the transaction. |
metadata - JSON | Arbitrary structured data about this transaction. |
voidedBy - UUID | The voided by records the transaction identifier that voided this transaction. |
voidOf - UUID | The void of records the transaction identifier this transaction is voiding |
created - Timestamp! | Date and time when the transaction was first posted. |
modified - Timestamp! | Time of the last change. Especially useful when reviewing the history . |
version - Int! | The current version number of this transaction. Previous versions are tracked in history . |
correlated - TransactionConnection! | List of all correlated transactions. These are transactions which share the same correlationId . |
entries - EntryConnection! | Ledger entries written by the transaction. |
history - TransactionConnection! | History of changes to this Transaction record. Because ledgers are immutable and append-only, all changes are recorded as sequenced versions of the record, providing an unbroken lineage of the current state. |
journal - Journal! | Reference to the journal this transaction applies to. |
tranCode - TranCode! | Reference to the tran code used by this transaction. |
exceptions - [TransactionException] | Reference to any exceptions, if occurred. |
TransactionConnection
Connection to a list of Transaction nodes. Access Transaction nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| Transactions record all accounting events in the ledger. In Twisp, the only way to write to a ledger is through a transaction. Every transaction writes two or more entries to the ledger in standard double-entry accounting practice. Twisp expands upon the basic principle of an accounting transaction with additional features like transaction codes and correlations. |
edges - [TransactionConnectionEdge]! | Edges represent links connecting a parent or query field to a list of Transaction nodes. They contain a reference to the Transaction node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
TransactionConnectionEdge
Edges represent links connecting a parent or query field to a list of Transaction nodes. They contain a reference to the Transaction node and metadata like the cursor
position for the edge.
Fields
cursor - String! | Cursor position at this edge. |
node - Transaction | Reference to the Transaction node at this edge. |
TransactionException
Fields
type - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
detail - JSON! | JSON object. |
Upload
Fields
key - String! | Unique identifier of file. e.g. path/to/file.json |
uploadURL - String! | Presigned URL for uploading the actual file. |
uploadURLExpiration - Timestamp! | Timestamp of when presigned url expires. If expired before file uploaded will need to create new upload. |
uploadHeaders - JSON! | Headers to include in the upload request. |
contentType - String! | contentType of file. Currently only type supported is application/json . File should be array of json objects to pass to bulk query as variables, each item in array representing a single execution of the query. |
User
A human user within the organization.
Users can belong to multiple groups, which define their permissions within the organization based on the associated policies of each group.
The user's effective permissions are determined by the combined set of policies from all their groups.
A user is uniquely identified by their email address.
Fields
id - UUID! | Unique ID for the user. |
organizationId - UUID! | ID of the user's parent organization. |
groupIds - [UUID!]! | A list of unique identifiers for the groups to which the user belongs. The user's permissions are determined by the combined policies of these groups. |
email - String! | The user's email address, which serves as a unique identifier and primary means of contact. |
version - Int! | The current version number of this user. Updates will increment the version. |
UserConnection
Connection to a list of User nodes. Access User nodes directly through the nodes
field, or access information about the connection edges with the edges
field. Use pageInfo
to paginate responses using the cursors provided.
Fields
| A human user within the organization. Users can belong to multiple groups, which define their permissions within the organization based on the associated policies of each group. The user's effective permissions are determined by the combined set of policies from all their groups. A user is uniquely identified by their email address. |
edges - [UserConnectionEdge]! | Edges represent links connecting a parent or query field to a list of User nodes. They contain a reference to the User node and metadata like the cursor position for the edge. |
pageInfo - PageInfo! |
UserConnectionEdge
Edges represent links connecting a parent or query field to a list of User nodes. They contain a reference to the User node and metadata like the cursor
position for the edge.
Fields
VelocityBalance
Fields
velocityControlId - UUID! | The matching velocity control id |
velocityLimitId - UUID! | The matching velocity limit. |
spent - Decimal! | The amount spent on the limit. |
remaining - Decimal! | The amount remaining on the limit. |
currency - CurrencyCode! | The currency of this velocity balance. |
velocityLimit - VelocityLimit! | Get the velocity limit for this Balance. |
balance - Balance! | The underlying balance for this velocity. |
entries - EntryConnection! | Retrieve the entries in this window. |
VelocityControl
Fields
id - ID! | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4" ) or integer (such as 4 ) input value will be accepted as an ID. |
velocityControlId - UUID! | Unique identifier of this control. |
name - String! | Human readable name of this control. |
description - String! | Human readable description of this control. |
enforcement - VelocityEnforcement! | The the enforcement this control produces. |
condition - Expression | A boolean expression indicating if an balance entry should be written. The account , transaction , balance and entry are available for use in the dimension computation on context.vars . @example("has(context.vars.account.metadata.policyPayment)") |
limits - [VelocityLimit]! | Set of default velocity limits for this control. |
VelocityControlConnection
Fields
nodes - [VelocityControl]! | |
edges - [VelocityControlConnectionEdge]! | |
pageInfo - PageInfo! |
VelocityControlConnectionEdge
Fields
cursor - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
node - VelocityControl |
VelocityEnforcement
Fields
action - VelocityEnforcementAction! |
VelocityLimit
Fields
id - ID! | The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4" ) or integer (such as 4 ) input value will be accepted as an ID. |
velocityLimitId - UUID! | Unique identifier for this velocity limit. |
name - String! | Human readable name of this limit. |
description - String! | " Human readable description of this limit. |
| Group by these values to index the calculation. The |
condition - Expression | A boolean expression indicating if an balance entry should be written. The account , transaction and entry are available for use in the dimension computation on context.vars . @example("has(context.vars.account.metadata.policyPayment)") |
limit - Limit! | The limit to enforce. |
currency - CurrencyCode! | The currency this limit applies to. If an empty string, applies to all limits. |
params - [ParamDefinition] | Parameters for VelocityLimit.limit |
VelocityLimitConnection
Fields
nodes - [VelocityLimit]! | |
edges - [VelocityLimitConnectionEdge]! | |
pageInfo - PageInfo! |
VelocityLimitConnectionEdge
Fields
cursor - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
node - VelocityLimit |
WorkflowExecution
Fields
workflowId - UUID! | Workflow Id of workflow invoked. |
executionId - UUID! | Execution Id of this execution. |
task - String! | The task that was invoked on this version of the workflow execution. |
params - JSON | Parameters supplied for this workflow execution. |
context - JSON | Context to pass along to future executions of this workflow. |
output - WorkflowExecutionOutput! | Output of this invocation of the workflow. |
version - Int! | version number of the execution. Previous versions are tracked in history. |
history - WorkflowExecutionConnection! | Workflow execution history for this workflow. |
WorkflowExecutionConnection
Fields
nodes - [WorkflowExecution]! | |
edges - [WorkflowExecutionConnectionEdge]! | |
pageInfo - PageInfo! |
WorkflowExecutionConnectionEdge
Fields
cursor - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
node - WorkflowExecution |
WorkflowExecutionOutput
Fields
state - JSON | JSON object. |
entities - [WorkflowExecutionOutputEntity] |
WorkflowExecutionOutputEntity
Fields
entityId - UUID! | 128-bit universally unique identifier (UUID). Used for most ID fields on records. |
entityFullName - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
Operation - String! | The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. |
WorkflowOutput
Workflow output.
Fields
state - JSON! | Outputs a state:transaction mapping of the workflow for the main transactions executed over the life of the workflow. |
transactions - [Transaction!]! | Resolves to all transactions posted in this invocation of the workflow. |