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

CardConnect Authorization

See more CardConnect Examples

Demonstrates how to send an Authorization request.
Authorization is the initial step in accepting payment from a cardholder. This action "authorizes" or requests permission from the bank to transfer money from the cardholder to the merchant.

See https://developer.cardconnect.com/cardconnect-api#authorization

Chilkat Dart Downloads

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

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

  final http = CkHttp();

  http.basicAuth = true;
  http.login = 'API_USERNAME';
  http.password = 'API_PASSWORD';

  // Build and send the following JSON:

  // Note: The CardConnect online documentation might use an expiry that is in the past, such as "1218".
  // This causes the request to fail.  Use a month/year that is in the future..
  // (Likewise, this example will have an invalid month/year after Dec 2021)

  // {
  //   "merchid": "MERCHANT_ID",
  //   "accttype": "VISA",
  //   "orderid": "AB-11-9876",
  //   "account": "4111111111111111",
  //   "expiry": "1221",
  //   "amount": "0",
  //   "currency": "USD",
  //   "name": "TOM JONES",
  //   "address": "123 MAIN STREET",
  //   "city": "anytown",
  //   "region": "NY",
  //   "country": "US",
  //   "postal": "55555",
  //   "profile": "Y",
  //   "ecomind": "E",
  //   "cvv2": "123",
  //   "track": null,
  //   "capture": "Y"
  // }

  // Use this online tool to generate the code from sample JSON: 
  // Generate Code to Create JSON
  final json = CkJsonObject();
  json.updateString('merchid', 'MERCHANT_ID');
  json.updateString('accttype', 'VISA');
  json.updateString('orderid', 'AB-11-9876');
  json.updateString('account', '4111111111111111');
  json.updateString('expiry', '1221');
  json.updateString('amount', '20');
  json.updateString('currency', 'USD');
  json.updateString('name', 'TOM JONES');
  json.updateString('address', '123 MAIN STREET');
  json.updateString('city', 'anytown');
  json.updateString('region', 'NY');
  json.updateString('country', 'US');
  json.updateString('postal', '55555');
  json.updateString('profile', 'Y');
  json.updateString('ecomind', 'E');
  json.updateString('cvv2', '123');
  json.updateNull('track');
  json.updateString('capture', 'Y');

  final url = 'https://<site>.cardconnect.com:<port>/cardconnect/rest/auth';

  final resp = CkHttpResponse();
  try {
    http.httpStr('PUT', url, json.emit(), 'utf-8', 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // A response status of 200 indicates potential success.  The JSON response body
  // must be examined to determine if it was truly successful or an error.
  print('response status code = ${resp.statusCode}');

  final jsonResp = CkJsonObject();
  jsonResp.load(resp.bodyStr);
  jsonResp.emitCompact = false;

  print('response JSON:');
  print(jsonResp.emit());

  // Sample error:

  // {
  //   "respproc": "PPS",
  //   "amount": "0.00",
  //   "resptext": "Invalid amount",
  //   "cardproc": "FNOR",
  //   "acctid": "1",
  //   "retref": "112804260418",
  //   "respstat": "C",
  //   "respcode": "43",
  //   "account": "41XXXXXXXXXX1111",
  //   "defaultacct": "Y",
  //   "merchid": "MERCHANT_ID",
  //   "token": "9418594164541111"
  // }

  // A successful response looks like this:

  // {
  //   "amount": "0.20",
  //   "resptext": "Approval",
  //   "acctid": "1",
  //   "commcard": " C ",
  //   "cvvresp": "M",
  //   "respcode": "00",
  //   "batchid": "1900942291",
  //   "avsresp": "Z",
  //   "entrymode": "ECommerce",
  //   "defaultacct": "Y",
  //   "merchid": "MERCHANT_ID",
  //   "token": "9418594164541111",
  //   "authcode": "PPS158",
  //   "respproc": "FNOR",
  //   "bintype": "",
  //   "profileid": "16618402968441604028",
  //   "retref": "112989260941",
  //   "respstat": "A",
  //   "account": "41XXXXXXXXXX1111"
  // }

  // Use this online tool to generate parsing code from sample JSON: 
  // Generate Parsing Code from JSON

  final amount = jsonResp.stringOf('amount');
  final resptext = jsonResp.stringOf('resptext');
  final acctid = jsonResp.stringOf('acctid');
  final commcard = jsonResp.stringOf('commcard');
  final cvvresp = jsonResp.stringOf('cvvresp');
  final respcode = jsonResp.stringOf('respcode');
  final batchid = jsonResp.stringOf('batchid');
  final avsresp = jsonResp.stringOf('avsresp');
  final entrymode = jsonResp.stringOf('entrymode');
  final defaultacct = jsonResp.stringOf('defaultacct');
  final merchid = jsonResp.stringOf('merchid');
  final token = jsonResp.stringOf('token');
  final authcode = jsonResp.stringOf('authcode');
  final respproc = jsonResp.stringOf('respproc');
  final bintype = jsonResp.stringOf('bintype');
  final profileid = jsonResp.stringOf('profileid');
  final retref = jsonResp.stringOf('retref');
  final respstat = jsonResp.stringOf('respstat');
  final account = jsonResp.stringOf('account');
}