Result Objectsanchor

Result objects are wrapper objects that indicate whether or not the API call was a success and, if successful, include the requested data.

note

API calls that don't have validations, such as searches, will return a collection of requested objects instead of a result object.

Success resultsanchor

If the API call was successful, the success on the result will return true. The target object will be available as a member of the result object.

  1. Node.js
result.success;
// true

Error resultsanchor

If the API call was not successful, the success on the result will return false. An error may be due to:

  1. Node.js
result.success;
// false

result.errors.deepErrors();

The errors result object will only be populated if the error is due to a failed validation. In this case, the object will contain one or more validation errors indicating which parameters were invalid:

  1. Callback
  2. Promise
gateway.customer.create({
  email: "invalidEmail",
  creditCard: {
    number: "notNumeric"
  }
}, (err, result) => {
  const deepErrors = result.errors.deepErrors();

  for (const i in deepErrors) {
    if (deepErrors.hasOwnProperty(i)) {
      console.log(deepErrors[i].attribute);
      console.log(deepErrors[i].code);
      console.log(deepErrors[i].message);
    }
  }

  const errors = result.errors;

  const customerErrors = errors.for("customer").deepErrors();
  for (const i in customerErrors) {
    if (customerErrors.hasOwnProperty(i)) {
      console.log(customerErrors[i].attribute);
      console.log(customerErrors[i].code);
      console.log(customerErrors[i].message);
    }
  }

  const creditCardErrors = errors.for("customer").for("creditCard").deepErrors();
  for (const i in creditCardErrors) {
    if (creditCardErrors.hasOwnProperty(i)) {
      console.log(creditCardErrors[i].attribute);
      console.log(creditCardErrors[i].code);
      console.log(creditCardErrors[i].message);
    }
  }
});

For details on transaction error results, see the transaction response object .

Messageanchor

The message on the error result gives a human-readable description of what went wrong, regardless of the cause and nature of the error.

  1. Node.js
console.log(result.message);
// "Amount is required.
Credit card number is invalid."

The message can contain multiple error messages.

note

This was added in version {{sdkVersionForDate "Jul09_2010"}}

Paramsanchor

Error results include the parameters that were submitted. This can be useful during Transparent Redirects to repopulate your form if validations fail.

  1. Node.js
console.log(result.params);
// {transaction: {creditCard: {expirationDate: {}}, amount: "10.00", type: "sale"}}

For PCI compliance reasons, credit card number and cvv parameters are not included.

See also