Skip to content

Transactions

Remoun Metyas edited this page Oct 14, 2011 · 10 revisions

Transactions

Retrieve IceCharge's Verdict on a Transaction

XML

https://[merchant_id]:[apikey]@api.icecharge.com/v1/xml/transaction/[id] (Method: GET)

<transaction verdict="P" payment_status="A"/>
JSON

https://[merchant_id]:[apikey]@api.icecharge.com/v1/json/transaction/[id] (Method: GET)

{
	"transaction": {
		"verdict": "A",
		"payment_status": "P"
	}
}

Possible values for verdict {#verdict}

  • "P": Pending (Transaction is in the queue and yet to be profiled; please try again)
  • "A": Accepted (Transaction has been profiled and was determined not to be fraudulent)
  • "R": Rejected (Transaction has been profiled and was determined to be fraudulent)
  • "M": Manual Review (Transaction has been profiled and we couldn't decide whether this transaction is fraudulent or not; manual review is advised) [This value will only be returned if automatic Out-of-Band Authentication (OOB) is not enabled. If OOB automatic is disabled, it is the merchant's responsibility to conduct OOB using our API.]
  • "O": OOB (Transaction has been profiled and we couldn't decide whether this transaction is fraudulent or not; we will conduct OOB) [This will only be returned if automatic OOB is enabled. A good API implementation will automatically commence OOB verification if this status is returned.]

Possible values for payment status {#payment_status}

  • "P": Pending (We have not received notification from the merchant as to whether or not payment was successful)
  • "A": Accepted (We have been notified by the merchant that the payment was successful)
  • "R": Rejected (We have been notified by the merchant that the payment was rejected)
  • "C": Charge Back (We have been notified by the merchant that the payment was successful but resulted in a charge back) [WARNING: If this value is posted to us, all entities related to the transaction in question will be blocked].

Submit a Transaction for Profiling

To submit a transaction for collection and profiling to be later screened for fraudulent activity, merchants must submit a minimum set of data.

Note that some indicators are collected from the browser used for checkout, so a JavaScript embed is required to complete integration. Refer to the integration documentation for the required script tags to be included in the checking out process.

XML

https://[merchant_id]:[apikey]@api.icecharge.com/v1/xml/transaction (Method: POST)

<transaction id="ABCD113412" sid="A33CE5FE6ED" amount="55" currency="USD">
	<card name="John Smith" ccn="[SHA512]" cvv="[SHA512]" token="1234XXXXXXXXX567">
		<billing_address
			name="John H. Smith"
			country="[ISO 3166-1]"
			city="Charlotte"
			state="NC"
			street="1234 street"
			zip="[optional]"
		/>
	</card>
	<shipping_address
		name="Alessandro Rubini"
		country="[ISO 3166-1]"
		city="Senago"
		state="Milan"
		street="1234 street"
		zip="34455"
	/>
</transaction>
JSON

https://[merchant_id]:[apikey]@api.icecharge.com/v1/json/transaction (Method: POST)

{
	"id": "ABCD113412",
	"sid": "A33CE5FE6ED",
	"amount": 55,
	"currency": "USD",
	"card": {
		"name": "John Smith",
		"ccn": [SHA512],
		"cvv": [SHA512],
		"token": "1234XXXXXXXXX567",
		"billing_address": {
			"name": "John H. Smith",
			"country": [ISO 3166-1],
			"city": "Charlotte",
			"state": "NC",
			"street": "1234 street",
			"zip": [optional]
		},
		"shipping_address": {
			"name": "Alessandro Rubini",
			"country": [ISO 3166-1],
			"city": "Senago",
			"state": "Milan",
			"street": "1234 street"
			"zip": "34455"
		}
	}
}

The name on a card is optional, and defaults to the name from the billing_address.

The shipping_address (shipping address) structure and all of its fields are optional. You can specify as many fields as you like, or you can specify none at all by removing the shipping_address structure altogether. The zip in the billing_address (billing address) structure is also optional.

The country (country) field takes any country value in the ISO 3166-1 standard. This is a required field, as are all other fields in all structures as long as they are not explicitly specified as optional.

Submitting a Transaction for Screening

To submit a transaction for screening, two parameters will be needed, the transaction ID and the session ID the device submission used or occurred during.

XML

https://[merchant_id]:[apikey]@api.icecharge.com/v1/xml/transaction/screen (Method: POST)

<transaction id="ABCD113412" sid="A33CE5FE6ED"/>
JSON

https://[merchant_id]:[apikey]@api.icecharge.com/v1/json/transaction/screen (Method: POST)

{
	"id": "ABCD113412",
	"sid": "A33CE5FE6ED"
}

Submitting Transaction Payment Status

XML

https://[merchant_id]:[apikey]@api.icecharge.com/v1/xml/transaction/[id]/payment_status (Method: POST)

<transaction payment_status="A"/>

POST: Reply (Empty if no error has occurred)

JSON

https://[merchant_id]:[apikey]@api.icecharge.com/v1/json/transaction/[id]/payment_status (Method: POST)

{
	payment_status: "A"
}

POST: Reply (Empty if no error has occurred)