Transactions examples

The examples assume that an access_token has been obtained and the client is ready to call the Merchant API. See Authentication example for more information.

List Accounts

api_client.config(API_ROOT => { 'headers' => { 'Authorization' => "Bearer #{access_token}" }})

accounts = api_client.get.links['ch:accounts']

accounts.get.body
=>
{
  "count"     => 3,
  "page"      => 1,
  "per_page"  => 20,
  "_links"    => {
    "self"   => {
      "href" => "https://merchant.test.clearhaus.com/accounts"
    },
    "curies" => [
      {
        "href"      => "https://developer.clearhaus.com/rels/{rel}",
        "templated" => true,
        "name"      => "ch"
      }
    ]
  },
  "_embedded" => {
    "ch:accounts" => [
      {
        "id" => "f72e20a6-31dc-4c24-9314-4bcc5b8820d4",
        "name" => "Clearhaus A/S",
        "country" => "DK",
        "currency" => "EUR",
        "mcc" => "5611",
        "merchant_id" => "2000001",
        "descriptor" => "clearhaus.com",
        "transaction_rules" => "reject credit",
        "_links" => {
          "self" => {
            "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4"
          },
          "ch:transactions" => {
            "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4/transactions{?query,page,per_page}",
            "templated" => true
          }
        }
      },
      ...
    ]
  }
}

List transactions

After retrieving accounts, one can list and query the transactions for a given account:

root_links = api_client.get.links

# Get first item on _embedded ch:accounts
account = root_links['ch:accounts'].get.objects['ch:accounts'].first

# Get transactions scoped to the account
transactions = account.get.links['ch:transactions']

The same can be accomplished using Transaction Query Language:

transactions = api_client.get.links['ch:transactions'] \
  .where(query: 'is:capture date:this_year mid:2000001')
transactions.get.body
=>
{
  "page"      => 1,
  "per_page"  => 20,
  "_links"    => {
    "self"   => {
      "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4/transactions"
    },
    "next"  => {
      "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4/transactions?page=2&per_page=20"
    },
    "curies" => [
      {
        "href"      => "https://developer.clearhaus.com/rels/{rel}",
        "templated" => true,
        "name"      => "ch"
      }
    ]
  },
  "_embedded" => {
    "ch:transactions" => [
      {
        "id"                => "a51a3abe-8eee-4a92-b941-e89f18c5bf66",
        "arn"               => "76874308121337230471105",
        "type"              => "capture",
        "status"            => {
          "code" => 20000
        },
        "processed_at"      => "2016-07-16T11:07:17+00:00",
        "currency"          => "DKK",
        "amount"            => 10050,
        "text_on_statement" => "site.com",
        "reference"         => "abc123",
        "threed_secure"     => "attempt",
        "recurring"         => false,
        "card"              => {
          "scheme"  => "visa",
          "last4"   => "1111",
          "bin"     => "411111",
          "type"    => "credit",
          "country" => "US"
        },
        "_links"            => {
          "self" => {
            "href" => "https://merchant.test.clearhaus.com/transactions/a51a3abe-8eee-4a92-b941-e89f18c5bf66"
          }
        },
        "_embedded"         => {
          "ch:account" => {
            "name"        => "Clearhaus A/S",
            "country"     => "DK",
            "mcc"         => "5611",
            "merchant_id" => "2000001",
            "_links"      => {
              "self" => {
                "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4"
              }
            }
          }
        }
      },
      ...
    ]
  }
}

Query fraudulent transactions (TC40/SAFE)

Please see Transaction Query Language for more.

transactions = api_client.get.links['ch:transactions'] \
  .where(query: 'flag:fraud fraud.date:this_month')
transactions.get.body
=>
{
  "page"      => 1,
  "per_page"  => 20,
  "_links"    => {
    "self"   => {
      "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4/transactions"
    },
    "next"  => {
      "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4/transactions?page=2&per_page=20"
    },
    "curies" => [
      {
        "href"      => "https://developer.clearhaus.com/rels/{rel}",
        "templated" => true,
        "name"      => "ch"
      }
    ]
  },
  "_embedded" => {
    "ch:transactions" => [
      {
        "id"                => "a51a3abe-8eee-4a92-b941-e89f18c5bf66",
        "arn"               => "76874308121337230471105",
        "type"              => "capture",
        "status"            => {
          "code" => 20000
        },
        "processed_at"      => "2016-07-16T11:07:17+00:00",
        "currency"          => "DKK",
        "amount"            => 10050,
        "text_on_statement" => "site.com",
        "reference"         => "abc123",
        "threed_secure"     => "attempt",
        "recurring"         => false,
        "card"              => {
          "scheme"  => "visa",
          "last4"   => "1111",
          "bin"     => "411111",
          "type"    => "credit",
          "country" => "US"
        },
        "fraud"             => {
          "date"    => "2016-08-01",
          "type"    => "fraudulent_usage"
        },
        "_links"            => {
          "self" => {
            "href" => "https://merchant.test.clearhaus.com/transactions/a51a3abe-8eee-4a92-b941-e89f18c5bf66"
          }
        },
        "_embedded"         => {
          "ch:account" => {
            "name"        => "Clearhaus A/S",
            "country"     => "DK",
            "mcc"         => "5611",
            "merchant_id" => "2000001",
            "_links"      => {
              "self" => {
                "href" => "https://merchant.test.clearhaus.com/accounts/f72e20a6-31dc-4c24-9314-4bcc5b8820d4"
              }
            }
          }
        }
      },
      ...
    ]
  }
}