Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

Quickbooks Revoke OAuth2 Token

See more QuickBooks Examples

Demonstrates how to revoke a QuickBooks OAuth2 access token.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // This example assumes we previously obtained an OAuth2 access token for QuickBooks.

  final jsonToken = CkJsonObject();
  try {
    jsonToken.loadFile('qa_data/tokens/qb-access-token.json');
  } on ChilkatException {
    print('Failed to load qb-access-token.json');
    return;
  }

  // The access token JSON looks something like this:

  // {
  //   "expires_in": 3600,
  //   "x_refresh_token_expires_in": 8726400,
  //   "refresh_token": "L011546037639r ... 3vR2DrbOmg0Sdagw",
  //   "access_token": "eyJlbmMiOiJBMTI4Q0 ... oETJEMbeggg",
  //   "token_type": "bearer"
  // }

  // This code sends the following request:

  // POST https://developer.api.intuit.com/v2/oauth2/tokens/revoke HTTP/1.1
  // Accept: application/json
  // Authorization: Basic UTM0dVB...wM1d2
  // Content-Type: application/json
  // 
  // {
  //     "token": "{bearerToken or refreshToken}"
  // }

  // Use this online tool to generate HTTP code from a sample request: 
  // Generate Code from a Sample HTTP Request

  final http = CkHttp();
  http.setRequestHeader('Accept', 'application/json');
  http.basicAuth = true;
  http.login = 'QUICKBOOKS-CLIENT-ID';
  http.password = 'QUICKBOOKS-CLIENT-SECRET';

  final json = CkJsonObject();
  json.updateString('token', jsonToken.stringOf('access_token'));

  final url = 'https://developer.api.intuit.com/v2/oauth2/tokens/revoke';
  final resp = CkHttpResponse();
  try {
    http.httpJson('POST', url, json, 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Response status code = ${resp.statusCode}');
  print('Response body:');
  print(resp.bodyStr);
}