Updating 1099-DIV Statements
Use the updateF1099divStatements
mutation to update data on existing 1099-DIV statements.
Note
Only statements in draft mode can be updated; statements which have been finalized cannot be updated.
The GraphQL mutation below demonstrates updating various fields on the 1099-DIV. Full documentation for the query is available as part of the introspective GraphQL documentation.
mutation {
updateF1099divStatements(
statements: [
{
otxId: "60a4a8a7-8fca-4f47-8e6f-939b4405ec20"
statement: {
ordinaryDividends: "672.55"
capitalGainDistributions: "725.18"
}
}
{
otxId: "c47e99a8-d58d-4e1f-a3ec-5187c2ef34df"
statement: { cashLiquidationDistributions: "60.50" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
The code snippets below illustrate running the query. See the documentation on authentication for information about obtaining the credential data passed in the header.
# Terminate lines with \ character to allow command to span multiple lines.
# Escape quotation marks in body of mutation or query with backslashes.
# Use here document for data stream.
# Tested using the bash interpreter on Linux.
curl 'https://sandbox.ottertax.com/v2/graphql' \
-i \
-X POST \
-H 'content-type: application/json' \
-H 'access-token: YOUR ACCESS TOKEN' \
-H 'client: YOUR CLIENT ID' \
-H 'uid: YOUR UID' \
-d @- <<END_DATA
{
"query":"
mutation {
updateF1099divStatements(
statements: [
{
otxId: \"60a4a8a7-8fca-4f47-8e6f-939b4405ec20\"
statement: {
ordinaryDividends: \"672.55\"
capitalGainDistributions: \"725.18\"
}
}
{
otxId: \"c47e99a8-d58d-4e1f-a3ec-5187c2ef34df\"
statement: { cashLiquidationDistributions: \"60.50\" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
"
}
END_DATA
:: Terminate lines with ^ character to allow command to span multiple lines.
:: Precede quotation marks in body of mutation or query with triple backslashes.
:: Precede other quotation marks in data stream with single backslashes.
:: Tested using a command prompt on Windows 10.
curl "https://sandbox.ottertax.com/v2/graphql" ^
-i ^
-X POST ^
-H "content-type: application/json" ^
-H "access-token: YOUR ACCESS TOKEN" ^
-H "client: YOUR CLIENT ID" ^
-H "uid: YOUR UID" ^
-d "{ \"query\":\" ^
mutation { ^
updateF1099divStatements( ^
statements: [ ^
{ ^
otxId: \\\"60a4a8a7-8fca-4f47-8e6f-939b4405ec20\\\" ^
statement: { ^
ordinaryDividends: \\\"672.55\\\" ^
capitalGainDistributions: \\\"725.18\\\" ^
} ^
} ^
{ ^
otxId: \\\"c47e99a8-d58d-4e1f-a3ec-5187c2ef34df\\\" ^
statement: { cashLiquidationDistributions: \\\"60.50\\\" } ^
} ^
] ^
) { ^
errors ^
statements { ^
recordNumber ^
statement { ^
capitalGainDistributions ^
cashLiquidationDistributions ^
ordinaryDividends ^
otxId ^
recipientFirstName ^
recipientLastName ^
uploaderId ^
} ^
messages ^
} ^
} ^
} ^
\" }"
// Using graphql-request from
// https://github.com/prisma-labs/graphql-request
// Example tested with node version 14.16.0
import { GraphQLClient, gql } from 'graphql-request'
async function main() {
const endpoint = 'https://sandbox.ottertax.com/v2/graphql'
const graphQLClient = new GraphQLClient(endpoint, {
headers: {
'access-token': 'YOUR ACCESS TOKEN',
'client': 'YOUR CLIENT ID',
'uid': 'YOUR UID'
},
})
const query = gql`
mutation {
updateF1099divStatements(
statements: [
{
otxId: "60a4a8a7-8fca-4f47-8e6f-939b4405ec20"
statement: {
ordinaryDividends: "672.55"
capitalGainDistributions: "725.18"
}
}
{
otxId: "c47e99a8-d58d-4e1f-a3ec-5187c2ef34df"
statement: { cashLiquidationDistributions: "60.50" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
`
const data = await graphQLClient.request(query)
console.log(JSON.stringify(data))
}
main().catch((error) => console.error(error))
<?php
// Tested with php-cli version 8.0.5.
$query =<<<'END_DATA'
mutation {
updateF1099divStatements(
statements: [
{
otxId: "60a4a8a7-8fca-4f47-8e6f-939b4405ec20"
statement: {
ordinaryDividends: "672.55"
capitalGainDistributions: "725.18"
}
}
{
otxId: "c47e99a8-d58d-4e1f-a3ec-5187c2ef34df"
statement: { cashLiquidationDistributions: "60.50" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
END_DATA;
$payload = array ('query' => $query);
$options = array(
'http' => array(
'method' => 'POST',
'content' => json_encode( $payload ),
'header'=> "Content-Type: application/json\r\n" .
"access-token: YOUR ACCESS TOKEN\r\n" .
"client: YOUR CLIENT ID\r\n" .
"uid: YOUR UID\r\n"
)
);
$context = stream_context_create( $options );
$response = file_get_contents( 'https://sandbox.ottertax.com/v2/graphql',
false, $context );
if( $response === FALSE ) {
echo "Call to server failed.\n";
} else {
echo $response . "\n";
}
?>
# Using GQL from
# https://github.com/graphql-python/gql
# Tested using python version 3.8.8
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
transport = AIOHTTPTransport(url="https://sandbox.ottertax.com/v2/graphql",
headers={ 'access-token': 'YOUR ACCESS TOKEN',
'client': 'YOUR CLIENT ID',
'uid': 'YOUR UID' })
client = Client(transport=transport, fetch_schema_from_transport=True)
query = gql(
"""
mutation {
updateF1099divStatements(
statements: [
{
otxId: "60a4a8a7-8fca-4f47-8e6f-939b4405ec20"
statement: {
ordinaryDividends: "672.55"
capitalGainDistributions: "725.18"
}
}
{
otxId: "c47e99a8-d58d-4e1f-a3ec-5187c2ef34df"
statement: { cashLiquidationDistributions: "60.50" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
"""
)
result = client.execute(query)
print(result)
# If you wish to use a library instead, see
# https://github.com/github/graphql-client
# Tested using ruby 2.7.2.
require( 'net/http' )
require( 'uri' )
require( 'json' )
uri = URI( "https://sandbox.ottertax.com/v2/graphql" )
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
headers = { 'Content-Type': 'application/json',
'access-token': 'YOUR ACCESS TOKEN',
'client': 'YOUR CLIENT ID',
'uid': 'YOUR UID' }
query = <<-END_DATA
mutation {
updateF1099divStatements(
statements: [
{
otxId: "60a4a8a7-8fca-4f47-8e6f-939b4405ec20"
statement: {
ordinaryDividends: "672.55"
capitalGainDistributions: "725.18"
}
}
{
otxId: "c47e99a8-d58d-4e1f-a3ec-5187c2ef34df"
statement: { cashLiquidationDistributions: "60.50" }
}
]
) {
errors
statements {
recordNumber
statement {
capitalGainDistributions
cashLiquidationDistributions
ordinaryDividends
otxId
recipientFirstName
recipientLastName
uploaderId
}
messages
}
}
}
END_DATA
request = Net::HTTP::Post.new(uri.request_uri, headers )
request.body = {query: query}.to_json
response = http.request(request)
if( response.code == '200' )
payload = JSON.parse( response.body )
STDOUT.puts( payload )
else
STDOUT.puts( "Response code was #{response.code}:\n#{response.inspect}" )
end