xml

Method Description

Invoked with a POST request. Operation name and input fields can be set up via Maestra framework. Details of method invocation can be found here.

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

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey {Secret Key, check with the manager it it’s mandatory}

<operation>
  <customer>
    <ids>
      <webSiteUserId>{customer ID}</webSiteUserId>
    </ids>
    <email>{customer email}</email>
    <mobilePhone>{mobile phone}</mobilePhone>
    <lastName>{customer last name}</lastName>
    <firstName>{customer first name}</firstName>
    <birthDate>{date of birth as YYYY-MM-DD}</birthDate>
    <password>{password}</password>
    <area>
      <ids>
        <externalId>{customer area ID}</externalId>
      </ids>
    </area>
    <subscriptions>
      <subscription>
        <pointOfContact>{communication channel, email/SMS/etc.}</pointOfContact>
        <topic>{emailing topic}</topic>
        <isSubscribed>{subscription status, true/false}</isSubscribed>
        <valueByDefault>{subscription default value, true/false}</valueByDefault>
      </subscription>
    </subscriptions>
    <customFields>
      <custom field>{custom field value}</custom field>
      <custom multi-value field>
        <value>{custom field value}</value>
        <value>{custom field value}</value>        
      </custom multi-value field>
    </customFields>
  </customer>
</operation>

Sample Operations

POST https://api.maestra.io/v3/operations/async?endpointId=Maestra&operation=registartion

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey X9mxK5N

<operation>
  <customer>
    <ids>
      <bitrixId>346257</bitrixId>
    </ids>
    <email>[email protected]</email>
    <mobilePhone>5552368</mobilePhone>
    <fullName>John Smith</fullName>
    <password>Qwerty</password>
    <subscriptions>
      <subscription>
        <pointOfContact>Sms</pointOfContact>
        <topic>SweetsOfLife</topic>
        <isSubscribed>false</isSubscribed>
        <valueByDefault>true</valueByDefault>
      </subscription>
      <subscription>
        <pointOfContact>Email</pointOfContact>
        <topic>NewGossips</topic>
        <isSubscribed>true</isSubscribed>
        <valueByDefault>true</valueByDefault>
      </subscription>
    </subscriptions>
    <customFields>
      <city>Austin</city>
      <b2b>true</b2b>
      <childrenNames>
        <value>Peter</value>
        <value>Maria</value>
      </childrenNames>
    </customFields>
  </customer>
</operation>
POST https://api.maestra.io/v3/operations/async?endpointId=Maestra&operation=WebSiteLogin

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey X9mxK5N

<operation>
  <customer>
    <ids>
      <bitrixId>346257</bitrixId>
    </ids>
    <email>[email protected]</email>
    <mobilePhone>5552368</mobilePhone>
  </customer>
</operation>
POST https://api.maestra.io/v3/operations/async?endpointId=Maestra&operation=callback

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey X9mxK5N

<operation>
  <customer>
    <mobilePhone>5552368</mobilePhone>
  </customer>
</operation>
POST https://api.maestra.io/v3/operations/async?endpointId=Maestra&operation=popup

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey X9mxK5N

<operation>
  <customer>
    <email>[email protected]</email>
    <subscriptions>
      <subscription>
        <pointOfContact>Email</pointOfContact>
        <isSubscribed>true</isSubscribed>
        <valueByDefault>false</valueByDefault>
      </subscription>
    </subscriptions>
  </customer>
</operation>
POST https://api.maestra.io/v3/operations/async?endpointId=Maestra&operation=RegistartionByReferrealCode

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey X9mxK5N

<operation>
   <customer>
      <email>{customer email}</email>
      <lastName>{last name}</lastName>
      <firstName>{name}</firstName>
      <middleName>{middle name}</middleName>
   </customer>
   <referencedCustomer>
      <ids>
         <referralCode>{referral code}</referralCode>
      </ids>
   </referencedCustomer>
</operation>

Response

<result>
    <status>Success</status>
</result>
<result>
    <status>ValidationError</status>
    <validationMessages>
        <validationMessage>
            <message>Customer with this email is already registered</message>
            <location>/operation/customer/email</location>
        </validationMessage>
        <validationMessage>
            <message>Customer with this mobile number is already registered</message>
            <location>/operation/customer/mobilePhone</location>
        </validationMessage>
    </validationMessages>
</result>

Depending on operation settings, we can update customer details or return a validation error on duplicate registration.