AuctionACCESS Webservices

Authentication

All AuctionACCESS APIs use the OAuth protocol for application and user authorization. OAuth is the industry standard for assuring your online transactions are secure, and you must provide a valid access token for each request you make. OAuth access tokens verify to AuctionACCESS that a request is coming from a valid application and that the application has the user's authorization to carry out the requests.

Minting Access Tokens

The AuctionACCESS token service generates, or mints, access tokens via client credentials grant. The client credentials grant flow mints a new application access token that you can use to access the resources owned by the application.

Configuring the Request

You need to configure three parts of a client credentials grant request:

  • The target endpoint
  • The HTTP request headers
  • The request payload

Setting the Target Endpoint

The endpoint you use depends on the environment you are targeting.

OAuth Token-Request Endpoints

Sandbox

POST https://auctionaccess.oktapreview.com/oauth2/default/v1/token

Production

POST https://auctionaccess.okta.com/oauth2/default/v1/token

Configuring the HTTP Request Headers

Set the following HTTP request headers:

  • Content Type – Must be set to: application/x-www-form-urlencoded
  • Authorization – The word “Basic” followed by your base64-encoded OAuth credentials (:)

Configuring the Request Payload

Format the payload of your POST request with the following values:

  • Set grant_type to client_credentials
  • Set scope to api

The client_credentials Grant Request

The client_credentials grant is a single request that mints a new application access token. Use the token to make requests to API methods that match the scopes configured into the access token. Configure your request using the following call specifics:

Call specifics
            HTTP method: POST
            URL (Sandbox): https://auctionaccess.oktapreview.com/oauth2/default/v1/token
            HTTP headers:
            Content-Type = application/x-www-form-urlencoded
            Authorization = Basic <B64-encoded_oauth_credentials>
            
            Request body:
            Select x-www-form-unrelencoded
            
            Enter keys and corresponding values:
            grant_type = client_credentials
            scope = api
            

cURL Request for Token

Base64-encode the client ID and secret and then pass through the /token endpoint. Please refer to the next section for instructions on how to base64-encode.

curl --request POST
--url https://auctionaccess.oktapreview.com/oauth2/default/v1/token
--header 'accept:application/json'
--header 'authorization: Basic YOUR_ACCESS_KEY'
--header 'cache-control: no-cache'
--header 'content-type: application/x-www-form-urlencoded'
--data 'grant_type=client_credentials&scope=api

If the credentials are valid, the application receives an access token:

{
    "access_token": "eyJ...1LQ",
    "token_type": "Bearer",
    "expires_in": 3600,
    "scope": "api"
}

Access token must be included in authorization header for all the API requests.

Base64-encode the Client ID and Secret

Use this section to base64-encode the client ID and secret. When you finish encoding, you can then include the encoded client ID and secret in the HTTP authorization header in the following format:

authorization: Basic <base64 encoded client ID and secret>

If you are using macOS or Linux:

  1. Obtain client ID and secret by contacting AuctionACCESS.
  2. Launch your preferred text editor, then paste the client ID and secret into a new file.
  3. Place the client ID and secret on the same line, and insert a colon between them: clientid:clientsecret
  4. Copy the clientid:clientsecret line to the clipboard.
  5. Launch a terminal and enter the following command, replacing clientid:clientsecret with the value that you just copied:
    1. echo-n clientid:clientsecret | base64
  6. Copy the returned value.

Note: If the returned value is broken into more than one line, return to your text editor and make sure the entire result is on a single line with no text wrapping.

If you are using Windows:

  1. Obtain client ID and secret by contacting AuctionACCESS.
  2. Launch your preferred text editor, then paste the client ID and secret into a new file.
  3. Place the client ID and secret on the same line, and insert a colon between them: clientid:clientsecret
  4. Save the file to C:\temp and name the file appCreds.txt.
  5. In Windows Explorer, right-click C:\temp, and then select CMD Prompt Here from the context menu.
  6. Enter the following command to encode the client ID and client secret:
    1. certutil -encode appCreds.txt appbase64Creds.txt
  7. Locate and open appbase64Creds.txt in C:\temp, copy its contents, and then close the file.

Note: Delete the appCreds.txt and the appbase64Creds.txt files after you finish.

Error Responses

If content type is not set or is not application/x-www-form-urlencoded as described in the document

{
    "errorCode": "E0000021",
    "errorSummary": "Bad request. Accept and/or Content-Type headers likely do not match supported values.",
    "errorLink": "E0000021",
    "errorId": "oaeQI4A8paXTWKfrRLc0lyRnQ",
    "errorCauses": []
} 

If scope is not set as described in the document

{
    "error": "invalid_scope",
    "error_description": "The authorization server resource does not have any configured default scopes, 'scope' must be provided."
}

If grant type is not set as mentioned in document

{
    "error": "invalid_request",
    "error_description": "The token request must specify a 'grant_type'. Valid values: [client_credentials]"
}

If credentials are incorrect

{
    "errorCode": "invalid_client",
    "errorSummary": "No client credentials found.",
    "errorLink": "invalid_client",
    "errorId": "oaer7rwFUEGSQS_XCQ592lynA",
    "errorCauses": []
}

Base Response Structure

Every response implements the baseResponse interface which contains two properties:

  • statusCode: Enum representing the status of the request
  • errorDetails: Error object with more detail as to what issue(s) was encountered

For a full list of possible error codes, view the ErrorCode enum.

Sample Responses

SUCCESS

{
    "data": {
        "validatePerson": {
            ...,
            "statusCode": "SUCCESS",
            "errorDetails": null
        }
    }
}

NO_OPERATION

{
    "data": {
        "validatePerson": {
            ...,
            "statusCode": "NO_OPERATION",
            "errorDetails": null
        }
    }
}

BAD_REQUEST

{
    "data": {
        "validatePerson": {
            ...,
            "statusCode": "BAD_REQUEST",
            "errorDetails": [
                {
                    "errorCode": "VALIDATION_ERROR",
                    "field": [
                        "auctionId"
                    ],
                    "message": [
                        "Invalid Auction Id"
                    ]
                }
            ]
        }
    }
}

FAILURE

{
    "data": {
        "validatePerson": {
            ...,
            "statusCode": "FAILURE",
            "errorDetails": [
                {
                    "errorCode": "INTERNAL_SERVER_ERROR",
                    "field": null,
                    "message": [
                        "An unexpected error occurred while attempting to validate the passed person.  Please try again"
                    ]
                }
            ]
        }
    }
}

Best Practices

Standard Request & Responses

When possible, all validate calls should include the auctionId parameter in order to ensure you receive all specific issues relative to the person or company under consideration. Validate calls should also include the isValid parameter in the request in order to receive a Boolean indicating if the requested entity is valid.

GraphQL is case-sensitive, so ensure that query and mutation names, as well as field names, match exactly with the documentation. If your request does not follow the documented format, you will receive a GraphQL error in response.

Person Validate

Typically, clients use this flow to gather the minimum required person data to then register the person with AuctionACCESS.

Query

query validatePerson {
  validatePerson(auctionAccessId: "123456789", last4PhotoId: "1234") {
    person {
      id
      name {
        first
        last
      }
      birthDate
      roles {
        companyId
        role
        company {
          dealer {
            legalName
            companyName
          }
          issues {
            created {
              createdDateTime
              creatorId
            }
            createdComment {
              comment
              created {
                createdDateTime
                creatorId
              }
              createdByCompany
              id
              restrictionCommentId
              globalVerified
              subject
              verifiedUserId
            }
            creationUserHomeCompanyId
            id
            issueEffectiveDate
            issueType {
              association
              allowPublicResolution
              callToResolve
              created {
                  createdDateTime
                  creatorId
              }
              displayNameEnglish
              description
              displayNameFrench
              instructionsEnglish
              displayNameSpanish
              id
              selfResolve
              scope
              instructionsSpanish
              instructionsFrench
            }
            referenceId
            locked
            requestedInfo {
              documentDescription
              requiredByCountry
              requiredByState
            }
            restrictionCompanyId
            resolved
            restrictionCompanyName
            visibility
          }
        }
      }
    }
    issues {
      created {
        createdDateTime
        creatorId
      }
      createdComment {
        comment
        created {
          createdDateTime
          creatorId
        }
        createdByCompany
        id
        restrictionCommentId
        globalVerified
        subject
        verifiedUserId
      }
      creationUserHomeCompanyId
      id
      issueEffectiveDate
      issueType {
        association
        allowPublicResolution
        callToResolve
        created {
          createdDateTime
          creatorId
        }
        displayNameEnglish
        description
        displayNameFrench
        instructionsEnglish
        displayNameSpanish
        id
        selfResolve
        scope
        instructionsSpanish
        instructionsFrench
      }
      referenceId
      locked
      requestedInfo {
        documentDescription
        requiredByCountry
        requiredByState
      }
      restrictionCompanyId
      resolved
      restrictionCompanyName
      visibility
    }
    isValid
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}

Response

{
  "data": {
    "validatePerson": {
      "person": {
        "id": "1000000123",
        "name": {
          "first": "John",
          "last": "Doe"
        },
        "birthDate": "2024-01-01",
        "roles": [
          {
            "companyId": "5000000123",
            "role": "Test",
            "company": {
              "dealer": {
                "legalName": "abc123",
                "companyName": "abc123"
              },
              "issues": [
                {
                  "created": {
                    "createdDateTime": "2024-01-01 23:59:59.997",
                    "creatorId": 123456789
                  },
                  "createdComment": {
                    "comment": "abc123",
                    "created": {
                      "createdDateTime": "2024-01-01 23:59:59.997",
                      "creatorId": 123456789
                    },
                    "createdByCompany": "1000000123",
                    "id": "12345678",
                    "restrictionCommentId": null,
                    "globalVerified": false,
                    "subject": "abc123",
                    "verifiedUserId": null
                  },
                  "creationUserHomeCompanyId": "1000000123",
                  "id": "12345678",
                  "issueEffectiveDate": "2024-01-01",
                  "issueType": {
                    "association": "Person",
                    "created": {
                      "createdDateTime": "2024-01-01 23:59:59.997",
                      "creatorId": 123456789
                    },
                    "description": "abc123",
                    "scope": "abc123"
                  },
                  "referenceId": "1234567",
                  "locked": false,
                  "requestedInfo": {
                    "documentDescription": "abc123", 
                    "requiredByCountry": null,
                    "requiredByState": null
                  }
                }
              ]
            }
          }
        ]
      },
      "issues": [
        {
          "created": {
            "createdDateTime": "2024-01-01 23:59:59.997",
            "creatorId": 123456789
          },
          "createdComment": {
            "comment": "abc123",
            "created": {
              "createdDateTime": "2024-01-01 23:59:59.997",
              "creatorId": 123456789
            },
            "createdByCompany": "abc123",
            "id": "4",
            "restrictionCommentId": null,
            "globalVerified": true,
            "subject": "abc123",
            "verifiedUserId": null
          },
          "creationUserHomeCompanyId": "5",
          "id": "6",
          "issueEffectiveDate": "2024-01-01",
          "issueType": {
            "association": "Person",
            "created": {
              "createdDateTime": "2024-01-01 23:59:59.997",
              "creatorId": 123456789
            },
            "description": "abc123",
            "scope": "NA"
          },
          "referenceId": "7",
          "locked": false,
          "requestedInfo": {
            "documentDescription": "abc123",
            "requiredByCountry": "United States",
            "requiredByState": "Alabama"
          }
        }
      ],
      "isValid": true,
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "INVALID_PERSON_ID",
            "field": "auctionAccessId",
            "message": [
                "Invalid Person ID."
            ]
          }
      ]
    }
  }
}

Person Register

After making use of personValidate to collect the minimum required person data, typically clients then make use of a multi-select control in their UI to select the dealers they want to register and then use this aggregated data to populate the personRegister request(s).

Mutation

mutation MyMutation {
              personRegister(auctionAccessId: "123456789", auctionId: "9876543210", companyId: "12345678") {
                person {
                  id
                  name {
                    first
                    last
                  }
                  birthDate
                  roles {
                    company {
                      id
                    }
                  }
                }
                registrationStatus {
                  personRoleStatus {
                    reason
                    status
                    auctionAccessId
                    auctionId
                    auctionName
                  }
                  companyStatus {
                    reason
                    status
                    auctionId
                    auctionName
                  }
                }
                statusCode
                errorDetails{
                  errorCode
                  field
                  message
                }
              }
            }
            
            

Response

{
  "data": {
    "personRegister": {
      "person": {
        "id": "123456789",
        "name": {
          "first": "Jane",
          "last": "Doe"
        },
        "birthDate": "2024-01-01",
        "roles": [
          {
            "company": {}
          }
        ]
      },
      "registrationStatus": {
        "personRoleStatus": {
          "reason": ["abc123"],
          "status": "abc123",
          "auctionAccessId": "123456789",
          "auctionId": "9876543210",
          "auctionName": "abc123"
        },
        "companyStatus": null
      },
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "NOT_FOUND",
            "field": "auctionId",
            "message": [
                "No Entity Could be Located."
            ]
          }
      ]
    }
  }
}

Additional Calls

  • companyValidate - This operation is used to designate if a company has a valid membership in AuctionACCESS.
  • companyRegister - This operation is used to register a company as doing business with a specific auction.

If you choose to make use of additional calls, please refer to the schemas for required fields and available response fields.

Common Errors & Issues

Invalid Person ID

{
  "data": {
    "validatePerson": {
      "person": null,
      "isValid": false,
      "issues": null,
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "BAD_REQUEST",
            "field": "auctionAccessId",
            "message": [
                "Invalid Person ID."
            ]
          }
      ]
    }
  }
}

Invalid Auction ID

{
  "data": {
    "validatePerson": {
      "person": null,
      "isValid": false,
      "issues": null,
      "message": "Invalid Auction Id",
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "BAD_REQUEST",
            "field": "auctionId",
            "message": [
                "Invalid Auction ID."
            ]
          }
      ]
    }
  }
}

No Entity Could Be Located

{
  "data": {
    "validatePerson": {
      "person": null,
      "isValid": false,
      "issues": null,
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "NOT_FOUND",
            "field": "auctionId",
            "message": [
                "No Entity Could be Located."
            ]
          }
      ]
    }
  }
}

Common reasons for this error include

  • Invalid values for required parameters like last4PhotoId, auctionAccessId, lastName, etc.
  • Excluded values for last4PhotoId, auctionAccessId, lastName, etc.

Membership Fee Due

{
  "data": {
    "validatePerson": {
      "person": null,
      "isValid": false,
      "issues": null,
      "message": "Membership Fee Due",
      "statusCode": "BAD_REQUEST",
      "errorDetails": [
          {
            "errorCode": "UNAUTHORIZED",
            "field": "auctionAccessId",
            "message": [
                "Membership Fee Due."
            ]
          }
      ]
    }
  }
}

Endpoints

Stage

https://webservices.stage-aa.auctionaccess.com/graphql

Production

https://webservices.prod-aa.auctionaccess.com/graphql

Queries

getPhotograph

Description

This operation is used to retrieve the profile photo for an AuctionACCESS member. The auctionAccessId is the only required parameter and must match the member's ID exactly in order to return the photograph.

Response

Returns a photographResponse

Arguments
Name Description
auctionAccessId - ID! The unique, AuctionACCESS-issued identification number for the person (ex. 1XXXXXXXX).

Example

Query
query GetPhotograph($auctionAccessId: ID!) {
  getPhotograph(auctionAccessId: $auctionAccessId) {
    auctionAccessId
    effectiveDate
    neverExpire
    imageName
    documentDescription
    imageBytes
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}
Variables
{"auctionAccessId": "100000000"}
Response
{
  "data": {
    "getPhotograph": {
      "auctionAccessId": "100000000",
      "effectiveDate": "01/02/24",
      "neverExpire": false,
      "imageName": "John Does License",
      "documentDescription": "John Doe's License Photo",
      "imageBytes": "axB....sTg",
      "statusCode": "SUCCESS",
      "errorDetails": ErrorDetails
    }
  }
}

validateCompany

Description

This operation is used to designate whether a company is counted as having a valid membership in AuctionACCESS. All submitted parameters must accurately correspond to the company for it to be validated and returned. At a minimum, the auctionAccessId and either last4GovernmentId or stateLicenseId AND issuingState are required. All parameters are "exact" searches (e.g., value in AuctionACCESS must exactly match the data submitted by the vendor). The auction ID is required for AuctionACCESS to determine which set of validation rules to use in returning the validation information. If no auction ID is included, validation will be done against the global validation rules, and no auction group or auction-level issues which might block registration will be returned.

Response

Returns a companyResponse

Arguments
Name Description
auctionAccessId - ID! The unique, AuctionACCESS-issued identification number for the company (ex. 5XXXXXX).
last4GovernmentId - ID The last 4 digits of the government-issued identification number for the company. This is the federal tax ID (most often the EIN in the US, BN in Canada, RFC in Mexico, owner's passport for other companies). In the case of sole proprietorships in the US, this might also be the owner's government identification number.
auctionId - ID The unique, AuctionACCESS-issued identification number for the auction making the request (ex. 1XXXXXXXXX). The auction ID is required so that we know which set of validation rules to use in returning the validation information. If no auction ID is included, validation will be done against the global validation rules, and no auction group or auction issues which might block validation will be returned.
stateLicenseId - ID The state-issued license ID for the company. If this parameter is used, you should also include the issuingState for the license.
issuingState - String The state that has issued a license for the company. This parameter goes with stateLicenseId. The full state name (i.e. - "Mississippi") must be submitted.
postCode - String The exact postal code for the company.

Example

Query
query ValidateCompany(
  $auctionAccessId: ID!,
  $last4GovernmentId: ID,
  $auctionId: ID,
  $stateLicenseId: ID,
  $issuingState: String,
  $postCode: String
) {
  validateCompany(
    auctionAccessId: $auctionAccessId,
    last4GovernmentId: $last4GovernmentId,
    auctionId: $auctionId,
    stateLicenseId: $stateLicenseId,
    issuingState: $issuingState,
    postCode: $postCode
  ) {
    company {
      id
      dealer {
        ...dealerFragment
      }
      issues {
        ...issueFragment
      }
    }
    isValid
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}
Variables
{
  "auctionAccessId": "100000000",
  "last4GovernmentId": "1234",
  "auctionId": "150000000",
  "stateLicenseId": "1234567890",
  "issuingState": "Alabama",
  "postCode": "35210"
}
Response
{
  "data": {
    "validateCompany": {
      "company": company,
      "isValid": true,
      "statusCode": "SUCCESS",
      "errorDetails": ErrorDetails
    }
  }
}

validatePerson

Description

This operation is used to designate whether a person is counted as having a valid membership in AuctionACCESS. All parameters submitted must validly match the person for the person to be validated and returned. At a minimum, the auctionACCESSId and last4PhotoId are required. All parameters are "exact" searches (i.e., value in AuctionACCESS must exactly match the data submitted by the vendor). The auctionId is required for AuctionACCESS to determine which set of validation rules to use in returning the validation information. If no auction ID is included, validation will be done against the global validation rules - and no auction group or auction-level issues, which might block validation, will be returned.

Response

Returns a personResponse

Arguments
Name Description
auctionAccessId - ID! The unique, AuctionACCESS-issued identification number for the person (ex. 1XXXXXXXX)
auctionId - ID The unique, AuctionACCESS-issued identification number for the auction (ex. 1XXXXXXXXX) making the request. The auction ID is required so that we know which set of validation rules to use in returning the validation information. If no auction ID is included, validation will be done against the global validation rules, and no auction group or auction issues which might block validation will be returned.
birthDate - String The date of birth for the person in mm/dd/yyyy format.
lastName - String The complete last name for the person.
last4PhotoId - String! The last 4 digits of a government-issued (usually state or province) photo identification number for the person. This is the number from the photo identification document (such as a driver's license or passport) provided upon enrollment with AuctionACCESS.

Example

Query
query ValidatePerson(
  $auctionAccessId: ID!,
  $auctionId: ID,
  $birthDate: String,
  $lastName: String,
  $last4PhotoId: String!
) {
  validatePerson(
    auctionAccessId: $auctionAccessId,
    auctionId: $auctionId,
    birthDate: $birthDate,
    lastName: $lastName,
    last4PhotoId: $last4PhotoId
  ) {
    person {
      birthDate
      id
      membershipExpirationDate
      name {
        ...nameFragment
      }
      issues {
        ...issueFragment
      }
      roles {
        ...roleDetailFragment
      }
    }
    isValid
    issues {
      referenceId
      id
      requestedInfo {
        ...requestedInfoFragment
      }
      created {
        ...auditorFragment
      }
      createdComment {
        ...createdCommentFragment
      }
      issueEffectiveDate
      issueType {
        ...issueTypeFragment
      }
      locked
      creationUserHomeCompanyId
      resolved
      visibility
      allowoverride
      allowregfromedi
      allowreginui
      restrictionCompanyId
      restrictionCompanyName
    }
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}
Variables
{
  "auctionAccessId": "100000000",
  "auctionId": "150000000",
  "birthDate": "01/02/1980",
  "lastName": "Doe",
  "last4PhotoId": "1234"
}
Response
{
  "data": {
    "validatePerson": {
      "person": person,
      "isValid": true,
      "issues": [issue],
      "statusCode": "SUCCESS",
      "errorDetails": ErrorDetails
    }
  }
}

Mutations

companyRegister

Description

This operation is used to register a company as doing business with a specific auction. For a registration to be successful, the request must contain both listed parameters and all the following conditions must be true: The company 5-million identification number (ex. 5XXXXXX) and auction identification number (ex. 1XXXXXXXXX) must both be valid within AuctionACCESS. The vendor submitting the request must be authorized to make registration requests on behalf of the specified auction. The company must not be marked as out of business (OOB). The company must not have any critical issues that prevent registrations. Critical issues are defined within AuctionACCESS for the auction group associated with the specified target auction. Once a registration is created the standard AuctionACCESS messaging will be kicked off to carry a full set of data to the auction management system of record for the auction.

Response

Returns a companyRegistrationResponse

Arguments
Name Description
auctionAccessId - String! The unique, AuctionACCESS-issued identification number for the dealership to be registered (ex. 5XXXXXX)
auctionId - String! The unique, AuctionACCESS-issued identification number for the auction for which the person is registering (ex.1XXXXXXXXX)

Example

Query
mutation CompanyRegister(
  $auctionAccessId: String!,
  $auctionId: String!
) {
  companyRegister(
    auctionAccessId: $auctionAccessId,
    auctionId: $auctionId
  ) {
    registrationStatus {
      personRoleStatus {
        ...personRoleStatusFragment
      }
      companyStatus {
        ...companyStatusFragment
      }
    }
    company {
      id
      dealer {
        ...dealerFragment
      }
      issues {
        ...issueFragment
      }
    }
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}
Variables
{"auctionAccessId": "100000000", "auctionId": "150000000"}
Response
{
  "data": {
    "companyRegister": {
      "registrationStatus": registrationStatus,
      "company": company,
      "statusCode": "SUCCESS",
      "errorDetails": ErrorDetails
    }
  }
}

personRegister

Description

This operation is used to register a person role and associated company (if the company is not already registered) as doing business with a specific auction. For a registration to be successful, the request must contain all three listed parameters plus all the following conditions must be true: person is valid, company is valid, company registration is successful.

Response

Returns a personRegistrationResponse

Arguments
Name Description
auctionAccessId - String! The unique, AuctionACCESS-issued 100-million identification number for the person to be registered (ex.1XXXXXXXX).
companyId - String! The unique, AuctionACCESS-issued identification number for the dealership (ex. 5XXXXXX)
auctionId - String! The unique, AuctionACCESS-issued identification number for the auction for which the person is registering (ex.1XXXXXXXXX)

Example

Query
mutation PersonRegister(
  $auctionAccessId: String!,
  $companyId: String!,
  $auctionId: String!
) {
  personRegister(
    auctionAccessId: $auctionAccessId,
    companyId: $companyId,
    auctionId: $auctionId
  ) {
    registrationStatus {
      personRoleStatus {
        ...personRoleStatusFragment
      }
      companyStatus {
        ...companyStatusFragment
      }
    }
    person {
      birthDate
      id
      membershipExpirationDate
      name {
        ...nameFragment
      }
      issues {
        ...issueFragment
      }
      roles {
        ...roleDetailFragment
      }
    }
    statusCode
    errorDetails {
      errorCode
      field
      message
    }
  }
}
Variables
{
  "auctionAccessId": "100000000",
  "companyId": "5000001",
  "auctionId": "150000000"
}
Response
{
  "data": {
    "personRegister": {
      "registrationStatus": registrationStatus,
      "person": person,
      "statusCode": "SUCCESS",
      "errorDetails": ErrorDetails
    }
  }
}

Types

BaseResponse

Fields
Field Name Description
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{"statusCode": "SUCCESS", "errorDetails": ErrorDetails}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

ErrorCode

Description

The type of error encountered

Values
Enum Value Description

AUTHORIZATION_ERROR

There was a problem validating your authorization.

UNAUTHORIZED

You are not authorized to make this call with the provided credentials.

BAD_REQUEST

Bad request. Please review the fields to identify the issue.

NOT_FOUND

One or more of the entities you tried to operate on were not found.

VALIDATION_ERROR

A validation error occurred. Please check the fields to identify the cause.

INTERNAL_SERVER_ERROR

An unexpected error occurred
Example
"AUTHORIZATION_ERROR"

ErrorDetails

Fields
Field Name Description
errorCode - ErrorCode The type of error encountered
field - [String] If relevant, the field that caused the error
message - [String] Friendly message describing the error in more detail
Example
{
  "errorCode": "VALIDATION_ERROR",
  "field": ["auctionId"],
  "message": ["Invalid auction id"]
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

StatusCode

Description

Status of the request

Values
Enum Value Description

SUCCESS

The request was successful.

NO_OPERATION

The request was successful, but no data was changed.

BAD_REQUEST

Bad request. Please check the error message for more details.

FAILURE

An issue has occurred. Please check the error message for more details.
Example
"SUCCESS"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

associationEnum

Description

Indicates the entity (or entity pairing) to which the issue type belongs

Values
Enum Value Description

Person

Company

CompanyPerson

Example
"Person"

auditor

Description

The person who interacted with an object.

Fields
Field Name Description
createdDateTime - String Date the record was created
creatorId - Int ID of the person who created the record
Example
{
  "createdDateTime": "abc123",
  "creatorId": 987
}

company

Description

A business that is enrolled in AuctionACCESS, typically an automobile dealership or commercial account.

Fields
Field Name Description
id - ID The unique, AuctionACCESS-issued identification number for the company (ex. 5XXXXXX).
dealer - dealer Identifies dealerships and information about them
issues - [issue] A status on an account in AuctionACCESS, which varies in severity, due to account discrepancies
Example
{
  "id": 4,
  "dealer": dealer,
  "issues": [issue]
}

companyRegistrationResponse

Description

Response object for the companyRegister operation

Fields
Field Name Description
registrationStatus - registrationStatus Status that indicates whether the registration call was successful
company - company A business that is enrolled in AuctionACCESS, typically an automobile dealership or commercial account.
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{
  "registrationStatus": registrationStatus,
  "company": company,
  "statusCode": "SUCCESS",
  "errorDetails": ErrorDetails
}

companyResponse

Description

List of response objects for the validateCompany operation

Fields
Field Name Description
company - company A business that is enrolled in AuctionACCESS, typically an automobile dealership or commercial account.
isValid - Boolean Yes/No value that determines whether the information provided in the validateCompany operation finds a valid company in AuctionACCESS
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{
  "company": company,
  "isValid": true,
  "statusCode": "SUCCESS",
  "errorDetails": ErrorDetails
}

companyStatus

Description

Status object used to indicate if the registration call for a company was successful

Fields
Field Name Description
auctionId - String The unique, AuctionACCESS-issued identification number of the auction for which the person is registering (ex. 1XXXXXXXXX)
auctionName - String Name of the auction
status - String Status indicating whether the registration call was successful
reason - [String] Reason(s) for the status if company is not registered including any relevant error messages
Example
{
  "auctionId": "150000000",
  "auctionName": "AuctionAccess",
  "status": "Y",
  "reason": []
}

createdComment

Description

Comment object that includes the message and supporting details

Fields
Field Name Description
comment - String The message for the object
created - auditor The person who created the comment
createdByCompany - String The unique, AuctionACCESS-issued ID of the home company for the user who created the comment (ex. auction ID or auction group ID)
globalVerified - Boolean Yes/No field to indicate whether a comment has been approved to be viewed globally
id - ID Identification number for the comment object
restrictionCommentId - String The unique, AuctionACCESS-issued ID of a company that a comment may be restricted to
subject - String Subject line of the comment
verifiedUserId - String The unique, AuctionACCESS-issued ID of the person who verified the comment for global approval
Example
{
  "comment": "xyz789",
  "created": auditor,
  "createdByCompany": "xyz789",
  "globalVerified": false,
  "id": "4",
  "restrictionCommentId": "xyz789",
  "subject": "abc123",
  "verifiedUserId": "abc123"
}

dealer

Description

A licensed automotive business enrolled in AuctionACCESS.

Fields
Field Name Description
companyName - String The "Doing Business As" (DBA) name for the dealership
legalName - String The legal name of the dealership
Example
{
  "companyName": "abc123",
  "legalName": "abc123"
}

issue

Description

A status on an account in AuctionACCESS, which varies in severity, due to account discrepancies

Fields
Field Name Description
referenceId - ID The unique, AuctionACCESS-issued identification number of the entity that has the issue (dealership, person, or commercial account)
id - ID Identification number for the issue
requestedInfo - requestedInfo Contains information about which document types are associated with an issue
created - auditor The person who interacted with an object
createdComment - createdComment Contains the comment associated with the creation of the issue
issueEffectiveDate - String Date the issue becomes effective
issueType - issueType Contains information about the status on the account in AuctionACCESS
locked - Boolean Yes/No field to indicate whether the issue is locked (i.e. only used for issues related to the Uninsurable List with Auction Insurance Agency)
creationUserHomeCompanyId - ID The home company of the person who created the issue record
resolved - Boolean Yes/No field to indicate whether the issue is resolved
visibility - ID Determines the issue level based on the Auction ID of the Auction that created the association if it is auction specific, Auction Group ID for the Group the auction that created it is associated with if it is group specific, or if it is global, the AutoTec ID of 1000000386 is used.
allowoverride - Boolean Yes/No value that indicates whether an issue can be overridden from the AuctionACCESS application UI
allowregfromedi - Boolean Yes/No value that indicates whether the issue will allow registration via API
allowreginui - Boolean Yes/No value that indicates whether the issue will allow registration from the AuctionACCESS application UI
restrictionCompanyId - Int The unique, AuctionACCESS-issued ID number of the entity restricted by this issue
restrictionCompanyName - String Name of the entity restricted by this issue
Example
{
  "referenceId": 4,
  "id": 4,
  "requestedInfo": requestedInfo,
  "created": auditor,
  "createdComment": createdComment,
  "issueEffectiveDate": "xyz789",
  "issueType": issueType,
  "locked": false,
  "creationUserHomeCompanyId": 4,
  "resolved": false,
  "visibility": 4,
  "allowoverride": false,
  "allowregfromedi": true,
  "allowreginui": false,
  "restrictionCompanyId": 123,
  "restrictionCompanyName": "xyz789"
}

issueType

Description

Contains information about the status on the account in AuctionACCESS, such as Dealer License Expired.

Fields
Field Name Description
allowPublicResolution - Boolean Yes/No field to determine whether issue type can be resolved via the self service applications
association - associationEnum Type of entity associated with the issue (ex. individual, company, or individual/company pairing)
callToResolve - String Indicates who can resolve the issue type
created - auditor The person who created the issue
description - String Description of the issue type
displayNameEnglish - String English display name used in the self service application
displayNameFrench - String French display name used in the self service application
displayNameSpanish - String Spanish display name used in the self service application
id - ID Identification number for the issue type
instructionsEnglish - String English instructions to resolve the issue for self service users
instructionsFrench - String French instructions to resolve the issue for self service users
instructionsSpanish - String Spanish instructions to resolve the issue for self service users
scope - scopeEnum Indicates the scope of the issue type (ex. global, group, or auction)
selfResolve - Boolean Yes/No field to indicate whether the issue type can be resolved in self service
Example
{
  "allowPublicResolution": false,
  "association": "Person",
  "callToResolve": "xyz789",
  "created": auditor,
  "description": "abc123",
  "displayNameEnglish": "abc123",
  "displayNameFrench": "xyz789",
  "displayNameSpanish": "abc123",
  "id": "4",
  "instructionsEnglish": "abc123",
  "instructionsFrench": "abc123",
  "instructionsSpanish": "xyz789",
  "scope": "NA",
  "selfResolve": false
}

name

Description

Name of the person

Fields
Field Name Description
first - String First name
last - String Last name
middle - String Middle name
nick - String Nickname
suffix - String Name suffix
Example
{
  "first": "abc123",
  "last": "xyz789",
  "middle": "xyz789",
  "nick": "abc123",
  "suffix": "abc123"
}

person

Description

An individual who represents a licensed business and is enrolled in AuctionACCESS.

Fields
Field Name Description
birthDate - String Birth date
id - String Identification number for the person
membershipExpirationDate - String The current expiration date for the person's membership
name - name Name of the person
issues - [issue] A status on an account in AuctionACCESS, which varies in severity, due to account discrepancies
roles - [roleDetail] Object containing roles assigned to the person
Example
{
  "birthDate": "xyz789",
  "id": "xyz789",
  "membershipExpirationDate": "xyz789",
  "name": name,
  "issues": [issue],
  "roles": [roleDetail]
}

personRegistrationResponse

Description

Response object for the personRegister operation

Fields
Field Name Description
registrationStatus - registrationStatus Status that indicates whether the registration call was successful
person - person An individual who represents a licensed business and is enrolled in AuctionACCESS
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{
  "registrationStatus": registrationStatus,
  "person": person,
  "statusCode": "SUCCESS",
  "errorDetails": ErrorDetails
}

personResponse

Description

Response object for the person queries

Fields
Field Name Description
person - person An individual who represents a licensed business and is enrolled in AuctionACCESS
isValid - Boolean Yes/No value that determines whether the information provided in the person queries finds a valid person in AuctionACCESS
issues - [issue] List of issues that are associated with the person
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{
  "person": person,
  "isValid": true,
  "issues": [issue],
  "statusCode": "SUCCESS",
  "errorDetails": ErrorDetails
}

personRoleStatus

Description

Status object used to indicate if the registration call for a person was successful

Fields
Field Name Description
auctionAccessId - String The unique, AuctionACCESS issued identification number for the person to be registered (ex. 1XXXXXXXXX)
auctionId - String The unique, AuctionACCESS-issued identification number of the auction for which the person is registering (ex. 1XXXXXXXXX)
auctionName - String Name of the auction
status - String Status indicating whether the registration call was successful
reason - [String] Reason/Reasons for the status if person is not registered This field can include error messages from the system Possible error messages are listed below: "Invalid VendorID" "Vendor Not Authorized" "Invalid Dealer ID" "Invalid Person ID" "Already Registered" "Issues Block Registration" "Invalid AuctionId" "There was a problem with the registration please try again" "No Role Association" "An unexpected error has occurred. Please retry your request" "Entity has an active membership expired issue" "Entity has an active membership policy violation"
Example
{
  "auctionAccessId": "100000000",
  "auctionId": "150000000",
  "auctionName": "AuctionAccess",
  "status": "Y",
  "reason": []
}

photographResponse

Description

Image of a person on file with AuctionACCESS

Fields
Field Name Description
auctionAccessId - ID The unique, AuctionACCESS-issued identification number for the person (ex. 1XXXXXXXX)
effectiveDate - String Date the photograph was submitted to AuctionACCESS
neverExpire - Boolean Indicates whether the photograph is non-expiring
imageName - String Photograph file name
documentDescription - String Description of the requested document's contents
imageBytes - String Base64-encoded string representation of the image bytes
statusCode - StatusCode Status of the request
errorDetails - ErrorDetails Error object populated if the status code did not indicate a successful operation
Example
{
  "auctionAccessId": "100000000",
  "effectiveDate": "01/02/24",
  "neverExpire": false,
  "imageName": "John Does License",
  "documentDescription": "John Doe's License Photo",
  "imageBytes": "axB....sTg",
  "statusCode": "SUCCESS",
  "errorDetails": ErrorDetails
}

registrationResponse

Description

Interface that defines minimum response from registration calls

Fields
Field Name Description
registrationStatus - registrationStatus Status object that indicates whether the registration call was successful
Possible Types
registrationResponse Types

companyRegistrationResponse

personRegistrationResponse

Example
{"registrationStatus": registrationStatus}

registrationStatus

Description

Status that indicates whether the registration call was successful

Fields
Field Name Description
personRoleStatus - personRoleStatus Status object used to indicate if the registration call for a person was successful
companyStatus - companyStatus Status object used to indicate if the registration call for a company was successful
Example
{
  "personRoleStatus": personRoleStatus,
  "companyStatus": companyStatus
}

requestedInfo

Description

Contains information about the documents that are associated with an issue

Fields
Field Name Description
documentDescription - String Description of the requested document's contents
requiredByCountry - String Country that requires the document
requiredByState - String State that requires the document
Example
{
  "documentDescription": "xyz789",
  "requiredByCountry": "abc123",
  "requiredByState": "abc123"
}

role

Description

The capacity in which a person represents a licensed business in AuctionACCESS, assigned by business owner/officer.

Fields
Field Name Description
companyId - String ID of the associated company
created - auditor When the record was created
id - Int ID in the associated company
removed - Boolean Indicate whether the person has been removed from the company
role - String Type of role
title - String Individual's title
Possible Types
role Types

roleDetail

Example
{
  "companyId": "abc123",
  "created": auditor,
  "id": 123,
  "removed": true,
  "role": "abc123",
  "title": "abc123"
}

roleDetail

Description

Details of the role assigned to the specified person

Fields
Field Name Description
companyId - String The unique, AuctionACCESS-issued identification number for the associated company (ex. 5XXXXXX)
role - String Type of role
company - company Company with the specified role
Example
{
  "companyId": "abc123",
  "role": "xyz789",
  "company": company
}

scopeEnum

Description

Determines the visibility for the issue type based on the Auction ID of the Auction that created the association if it is auction specific, Auction Group ID for the Group the auction that created it is associated with if it is group specific, or if it is global, the AutoTec ID of 1000000386 is used.

Values
Enum Value Description

NA

Auction

Group

Global

Ford

Auction_Dealer

Ford_Dealer

Example
"NA"