Sonar API Meeting (01/26/2024)
queries vs mutations
query:
- standard query
- queries can only return up to 10000 results at once, pagination is required after that
mutation:
- adding info
- createVoiceService for voice services
creating services:
- need id
API treats all money values as cents
ID of created entity are always returned
credits applied to balance
--------------------------------------------------
Examples (note that all account IDs, etc are for demo purposes):
--------------------------------------------------
query all customers and their IDs:
query accounts {
accounts(paginator: {page: 1, records_per_page: 9999}) {
entities {
id,
name
}
}
}
--------------------------------------------------
query all services and their IDs:
query service {
services {
entities {
id,
name,
type
}
}
}
--------------------------------------------------
create a new service:
mutation createService($input:CreateRecurringServiceMutationInput) {
createRecurringService(input:$input) {
enabled,
name,
type,
application,
amount,
display_if_zero,
company_id,
general_ledger_code_id,
tax_definition_id,
reverse_tax_definition_id,
id,
sonar_unique_id,
created_at,
updated_at
}
}
--------------------------------------------------
create a new one-time charge:
mutation onetimecharge {
createAccountOneTimeTransaction(
input: {
service_id: 105,
account_id: 3,
description: "Description",
quantity: 1,
price_override: 1000
}
) {
id
}
}
--------------------------------------------------
query for listing all invoices for a customer:
query customerInvoice {
accounts(id: 2) {
entities {
id,
name,
invoices {
entities {
id,
date,
due_date,
late_fee_applied,
remaining_due,
debits {
entities {
id,
amount
}
}
credits {
entities {
id,
amount
}
}
}
}
}
}
}
--------------------------------------------------
query account transactions:
query accounttransactions {
transactions(account_id: 2) {
entities {
id,
amount
}
}
}
--------------------------------------------------