V3 API

Operation Invocation Methods

POST https://api.maestra.io/v3/operations/sync?endpointId={unique ID of site/mobile app/etc.}&operation={operation name}&deviceUUID={unique device ID}

Accept: application/xml
Content-Type: application/xml
Authorization: Authorization: SecretKey {Secret Key, check with the manager if it’s mandatory}"
X-Customer-IP: {IP of customer device, check with the manager if it’s mandatory}
POST https://api.mindbox.cloud/v3/operations/async?endpointId={unique ID of site/mobile app/etc.}&operation={operation name}&deviceUUID={unique device ID}

Accept: application/xml
Content-Type: application/xml
Authorization: Mindbox secretKey="{secret key, check with the manager if it’s mandatory}"
X-Customer-IP: {IP of customer device, check with the manager if it’s mandatory}

EndpointId

  • Unique ID of site/store/mobile app/etc.
  • The value can be obtained from the manager.

Authorization header

  • 'Authorization' can be required, depending on operation type.
  • Check with the manager if it’s mandatory.
  • Each EndpointId corresponds to its own secretKey; check the value with the manager.

Operation

  • Operation name at Maestra. Each type of site/store/mobile app action has a corresponding operation.
  • Operation list is set up internally.
  • Request/response body format depends on operation type.

DeviceUUID

  • Check with the manager if it’s mandatory.
  • At the website: pass DeviceUUID from the maestraDeviceUUID cookie.
  • At Android KitKat and higher: pass Advertising Id
  • At iOS 6 and higher: pass IDFA

Error Handling

<result>
  <status>Success</status>
  {data returned by the operation}
</result>
<result>
    <status>ValidationError</status>
    <validationMessages>
        <validationMessage>
            <message>Incorrect last name</message>
            <location>/customer/lastName</location>
        </validationMessage>
        <validationMessage> ...</validationMessage>
    </validationMessages>
</result>
<result>
    <status>ProtocolError</status>
    <errorMessage>{error text}</errorMessage>
    <errorId>{error UUID}</errorId>
    <httpStatusCode>{error HTTP code}</httpStatusCode>
</result>
<result>
    <status>InternalServerError</status>
    <errorMessage>{error text}</errorMessage>
    <errorId>{error UUID}</errorId>
    <httpStatusCode>{error HTTP code}</httpStatusCode>
</result>
<result>
  <status>TransactionAlreadyProcessed</status>
</result>
  • Validation error: Show the message to customer
  • Incorrect operation invocation: Check with the manager
  • Maestra unavailable: Check with the manager and/or repeat request later.
  • Transaction already processed: A translaction with this UUID was already processed. If you maintain a request queue and repeat a request until it's processed, it’s a normal scenario. If you don't usually repeat requests, this response means that you’ve provided a non-unique transaction ID.