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. Ruby
result.success?
#=> true

transaction = result.transaction

Error resultsanchor

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

  1. Ruby
result.success?
#=> false

result.errors

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. Ruby
result = gateway.customer.create(
  :email => "invalid_email",
  :credit_card => {
    :number => "not_numeric",
  }
)

result.errors.each do |error|
  puts error.attribute
  puts error.code
  puts error.message
end

result.errors.for(:customer).each do |error|
  puts error.attribute
  puts error.code
  puts error.message
end

result.errors.for(:customer).for(:credit_card).each do |error|
  puts error.attribute
  puts error.code
  puts error.message
end

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. Ruby
p 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. Ruby
p result.params
#=> {"transaction" => {"amount" => "12.00", "credit_card" => {"cardholder_name" => "John Doe"}}}

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

See also