Cash Withdrawal search page

Cash Withdrawal page with search page allows to process Cash Withdrawals at the cage inside of a physical casino.

When the merchant operator enters a user´s phone number or a user´s firstname, lastname and date of birth, a specific API call is sent to the merchant to retrieve user details. This call has to be implemented by the merchant.

The customer has to be of legal age and must be in good standing. Users that are not eligible are to be flagged accordingly, or not to be returned at all. Identity has to be verified at the cage.

When the payment is initiated, a callback is sent to the merchant listener to approve or deny the payment.

The following method IDs are covered in this section:

IDNameDebit State
174CashWithdrawalWithdrawnToUser

Flow overview

The following flow is used:

Redirect Integration

Not applicable.

Backend2BackendIntegration

Before the payment is created or select on the Cash Withdrawal search page, the user has to be found on the page. Once the operator enters either firstname, lastname, date of birth or telephoneNumber, , the cage page inside of PS Admin sends a request to the merchant listener to retrieve a list of users (player).

Example getNewManualPaymentDetailsListRequest with FirstName, LastName and DateOfBirth field:

<?xml version="1.0" encoding="utf-8"?>
<getNewManualPaymentDetailsListRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>B2BTestmerchant</merchantID>
  <paymentMethodID>174</paymentMethodID>
   <dateOfBirth>1978-12-28T00:00:00</dateOfBirth>
  <firstName>Sus</firstName>
  <lastName>Rein</lastName>
</getNewManualPaymentDetailsListRequest>

Example getNewManualPaymentDetailsListRequest with telephoneNumber field:

<?xml version="1.0" encoding="utf-8"?>
<getNewManualPaymentDetailsListRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>B2BTestmerchant</merchantID>
  <paymentMethodID>174</paymentMethodID>
  <telephoneNumber>7242601170</telephoneNumber>
 </getNewManualPaymentDetailsListRequest>

Example getNewManualPaymentDetailsListRequest with email address field:

<?xml version="1.0" encoding="utf-8"?>
<getNewManualPaymentDetailsListRequest xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
  <merchantID>B2BTestmerchant</merchantID>
  <paymentMethodID>174</paymentMethodID>
  <userID xsi:nil="true" />
  <username xsi:nil="true" />
  <email>[email protected]</email>
  <languageCode xsi:nil="true" />
  <dateOfBirth>1984-08-01T00:00:00</dateOfBirth>
  <firstName>Susi</firstName>
  <lastName>Smith</lastName>
  <telephoneNumber>7242601170</telephoneNumber>
  <currencyID xsi:nil="true" />
  <providerUserID xsi:nil="true" />
  <shopID xsi:nil="true" />
</getNewManualPaymentDetailsListRequest>

The request will include the following details:

DetailDescription
telephoneNumberphone number of the user as entered on the Cash withdrawal search page
eMaileMail address of the user as entered on the 'Cash withdrawal search page
FirstNameuser´s first name
LastNameuser´s last name
dateOfBirthuser´s date of birth

📘

Request details

The request will include either

  • the telephoneNumber

OR

  • the eMail address

OR

  • FirstName and LastName and dateOfBirth

OR a combination of these values

The merchant should return in the response the following details for the customers.

The response should include results for one or multiple users. If too many users are found, then only the first 10 users are displayed.

FieldDescription
userIDThe player`s external userID.
usernameThe player´s user name.
firstnameThe player´s first name.
lastnameThe player´s last name.
eMailThe player´s eMail address.
addressThe player´s address, including the fields street, houseName, houseNumberExtension, postalCode, city , state, countryCode and telephoneNumber.
dateOfBirthThe player´s date of birth
identificationNumberThe player identification number. It will be displayed masked.
userStatusThe player´s user status as defined by the merchant.
withdrawableBalanceThe player´s withdrawable balance.
withdrawableCashBalanceThe player´s withdrawable cash balance.
minLimitUSDThe player´s minimum limit in USD
maxLimitUSDThe player´s maximum limit in USD.
limitCurrencyThe player´s limit currency.

Data is not stored, only displayed.

If user cannot be found, an error message is shown.

Example getNewManualPaymentDetailsListResponse (User found):

<?xml version="1.0" encoding="utf-8"?>
<getNewManualPaymentDetailsListResponse xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
  <results>
    <result>
      <userID xmlns=http://www.cqrpayments.com/PaymentProcessing>852146987</userID>
      <merchantTransactionID xmlns=http://www.cqrpayments.com/PaymentProcessing>BorgataNJ</merchantTransactionID>
      <userDetails xmlns=http://www.cqrpayments.com/PaymentProcessing>
        <username xsi:nil="true" />
        <firstname>Susi</firstname>
        <lastname>Smith</lastname>
        <currencyCode xsi:nil="true" />
        <languageCode xsi:nil="true" />
        <email>[email protected]</email>
        <address>
          <street>TeststreetG</street>
          <houseName xsi:nil="true" />
          <houseNumber>77</houseNumber>
          <houseNumberExtension xsi:nil="true" />
          <postalCode>76543</postalCode>
          <city>New York</city>
          <state>NY</state>
          <countryCode2>US</countryCode2>
          <telephoneNumber>7242601170</telephoneNumber>
        </address>
        <dateOfBirth>1984-08-01T00:00:00</dateOfBirth>
        <identificationNumber>326117890</identificationNumber>
        <identificationNumberType xsi:nil="true" />
        <drivingLicenseNumber xsi:nil="true" />
        <drivingLicenseIssuingState xsi:nil="true" />
        <userStatus>Regular User</userStatus>
        <ableToWithdraw>true</ableToWithdraw>
        <withdrawableBalance>80.0</withdrawableBalance>
        <withdrawableCashBalance>80.0</withdrawableCashBalance>
      </userDetails>
      <paymentDetails xmlns=http://www.cqrpayments.com/PaymentProcessing>
        <detail xsi:type="keyDecimalValuePair">
          <key>minLimitUSD</key>
          <value>0.02</value>
        </detail>
        <detail xsi:type="keyDecimalValuePair">
          <key>maxLimitUSD</key>
          <value>1200</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>limitCurrency</key>
          <value>USD</value>
        </detail>
      </paymentDetails>
    </result>
  </results>
  <status>
    <code xmlns=http://www.cqrpayments.com/PaymentProcessing>0</code>
    <description xmlns=http://www.cqrpayments.com/PaymentProcessing>success</description>
    <details xmlns=http://www.cqrpayments.com/PaymentProcessing />
  </status>
</getNewManualPaymentDetailsListResponse>

Example getNewManualPaymentDetailsListResponse (User not found):

<getNewManualPaymentDetailsListResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <results></results>
    <status>
        <code>2</code>
        <description>Users not found!</description>
        <details></details>
    </status>
</getNewManualPaymentDetailsListResponse>

According to the returned response message, the appropriate information will be displayed to the cage clerk in the PS Admin.

Response Messages:

responseStatus.CodeMeaningDisplay message
0User Found / Eligible
2User Not FoundThe message passed in description will be used for display.

XSD

Please see below for the XSD (for both Cash Withdrawal search and for new Cash Deposits). All the basic types are included in the main XSD, see here.

Messages:

   <s:element name="getNewManualPaymentDetailsRequest" type="getNewManualPaymentDetailsRequestData">
   </s:element>
   
	
	<s:element name="getNewManualPaymentDetailsListRequest" type="getNewManualPaymentDetailsRequestData">
	</s:element>
	
	<s:element name="getNewManualPaymentDetailsResponse">
		<s:complexType>
			<s:sequence>
				<s:element minOccurs="0" maxOccurs="1" name="result" type="getNewManualPaymentDetailsResult"/>
				<s:element minOccurs="1" maxOccurs="1" name="status" type="responseStatus"/>
				<s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any" />
			</s:sequence>
		</s:complexType>
	</s:element>
	
	  <s:element name="getNewManualPaymentDetailsListResponse">
      <s:complexType>
         <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="results">
               <s:complexType>
                  <s:sequence>
                     <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="getNewManualPaymentDetailsResult" />
                  </s:sequence>
               </s:complexType>
            </s:element>
            <s:element minOccurs="1" maxOccurs="1" name="status" type="responseStatus"/>
            <s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any" />
         </s:sequence>
      </s:complexType>
   </s:element>
   
Data elements:

   <s:complexType name="getNewManualPaymentDetailsRequestData">
      <s:sequence>
         <s:element minOccurs="1" maxOccurs="1" name="merchantID" type="stringID" />
         <s:element minOccurs="1" maxOccurs="1" name="paymentMethodID" type="positiveInt"/>
         <s:element minOccurs="0" maxOccurs="1" name="userID" type="stringID" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="username" type="username" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="email" type="emailAddress" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="languageCode" type="twoLetterCode" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="dateOfBirth" type="dateOfBirth" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="firstName" type="personName" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="lastName" type="personName" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="telephoneNumber" type="secureString" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="currencyID" type="threeLetterCode" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="providerUserID" type="stringID" nillable="true"/>
      </s:sequence>
   </s:complexType>
   
  <s:complexType name="getNewManualPaymentDetailsResult">
      <s:sequence>
         <s:element minOccurs="0" maxOccurs="1" name="userID" type="stringID"/>
         <s:element minOccurs="0" maxOccurs="1" name="merchantTransactionID" type="merchantTransactionID" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="userDetails" type="userDetails" nillable="true"/>
         <s:element minOccurs="1" maxOccurs="1" name="paymentDetails">
            <s:complexType>
               <s:sequence>
                  <s:element minOccurs="0" maxOccurs="unbounded" name="detail" type="keyValueBasePair"/>
               </s:sequence>
            </s:complexType>
         </s:element>
         <s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any"/>
      </s:sequence>
   </s:complexType>
   
 	<s:complexType name="responseStatus">
		<s:sequence>
			<s:element minOccurs="1" maxOccurs="1" name="code" type="s:int"/>
			<s:element minOccurs="1" maxOccurs="1" name="description" type="s:string"/>
			<s:element minOccurs="1" maxOccurs="1" name="details">
				<s:complexType>
					<s:sequence>
						<s:element minOccurs="0" maxOccurs="1000" name="detail" type="keyValueBasePair"/>
					</s:sequence>
				</s:complexType>
			</s:element>
			<s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any" />
		</s:sequence>
	</s:complexType>

Additional information:

<?xml version="1.0" encoding="utf-8" ?>
<s:schema id="PaymentEventsSchema"
		  targetNamespace="http://www.cqrpayments.com/PaymentProcessing"
		  elementFormDefault="qualified"
		  xmlns="http://www.cqrpayments.com/PaymentProcessing"
		  xmlns:s="http://www.w3.org/2001/XMLSchema">

   <s:complexType name="getNewManualPaymentDetailsRequestData">
      <s:sequence>
         <s:element minOccurs="1" maxOccurs="1" name="merchantID" type="stringID" />
         <s:element minOccurs="1" maxOccurs="1" name="paymentMethodID" type="positiveInt"/>
         <s:element minOccurs="0" maxOccurs="1" name="userID" type="stringID" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="username" type="username" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="email" type="emailAddress" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="languageCode" type="twoLetterCode" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="dateOfBirth" type="dateOfBirth" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="firstName" type="personName" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="lastName" type="personName" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="telephoneNumber" type="secureString" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="currencyID" type="threeLetterCode" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="providerUserID" type="stringID" nillable="true"/>
      </s:sequence>
   </s:complexType>

	<s:element name="getNewManualPaymentDetailsListRequest" type="getNewManualPaymentDetailsRequestData">
	
	</s:element>

   <s:element name="getNewManualPaymentDetailsListResponse">
      <s:complexType>
         <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="results">
               <s:complexType>
                  <s:sequence>
                     <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="getNewManualPaymentDetailsResult" />
                  </s:sequence>
               </s:complexType>
            </s:element>
            <s:element minOccurs="1" maxOccurs="1" name="status" type="responseStatus"/>
            <s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any" />
         </s:sequence>
      </s:complexType>
   </s:element>

   <s:complexType name="getNewManualPaymentDetailsResult">
      <s:sequence>
         <s:element minOccurs="0" maxOccurs="1" name="userID" type="stringID"/>
         <s:element minOccurs="0" maxOccurs="1" name="merchantTransactionID" type="merchantTransactionID" nillable="true"/>
         <s:element minOccurs="0" maxOccurs="1" name="userDetails" type="userDetails" nillable="true"/>
         <s:element minOccurs="1" maxOccurs="1" name="paymentDetails">
            <s:complexType>
               <s:sequence>
                  <s:element minOccurs="0" maxOccurs="unbounded" name="detail" type="keyValueBasePair"/>
               </s:sequence>
            </s:complexType>
         </s:element>
         <s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any"/>
      </s:sequence>
   </s:complexType>

	<s:complexType name="userDetails">
		<s:sequence>
			<s:element minOccurs="0" maxOccurs="1" name="username" type="username" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="firstname" type="personName" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="lastname" type="personName" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="currencyCode" type="threeLetterCode" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="languageCode" type="twoLetterCode" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="email" type="emailAddress" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="address" type="address" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="dateOfBirth" type="dateOfBirth" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="gender" type="gender" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="identificationNumber" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="identificationNumberType" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="drivingLicenseNumber" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="drivingLicenseIssuingState" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="isVIPUser" type="s:boolean" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="registrationDateAtMerchant" type="s:date" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="lastActivityDateAtMerchant" type="s:date" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="userStatus" type="s:string" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="ableToWithdraw" type="s:boolean" nillable="true"/>
		   <s:element minOccurs="0" maxOccurs="1" name="withdrawableBalance" type="s:decimal" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="withdrawableCashBalance" type="s:decimal" nillable="true"/>
		</s:sequence>
	</s:complexType>

	<s:complexType name="responseStatus">
		<s:sequence>
			<s:element minOccurs="1" maxOccurs="1" name="code" type="s:int"/>
			<s:element minOccurs="1" maxOccurs="1" name="description" type="s:string"/>
			<s:element minOccurs="1" maxOccurs="1" name="details">
				<s:complexType>
					<s:sequence>
						<s:element minOccurs="0" maxOccurs="1000" name="detail" type="keyValueBasePair"/>
					</s:sequence>
				</s:complexType>
			</s:element>
			<s:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##any" />
		</s:sequence>
	</s:complexType>

	<s:simpleType name="username">
		<s:restriction base="secureString">
			<s:maxLength value="50"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="threeLetterCode">
		<s:restriction base="s:string">
			<s:pattern value="^[A-Za-z]{3}$"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="personName">
		<s:restriction base="secureString">
			<s:minLength value="1"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="positiveInt">
		<s:restriction base="s:int">
			<s:minInclusive value="1"/>
		</s:restriction>
	</s:simpleType>

	<s:complexType name="address">
		<s:sequence>
			<s:element minOccurs="0" maxOccurs="1" name="street" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="houseName" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="houseNumber" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="houseNumberExtension" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="postalCode" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="city" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="state" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="countryCode2" type="twoLetterCode" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="telephoneNumber" type="secureString" nillable="true"/>
			<s:element minOccurs="0" maxOccurs="1" name="district" type="secureString"/>
			<s:element minOccurs="0" maxOccurs="1" name="postalCodeSuffix" type="secureString"/>
		</s:sequence>
	</s:complexType>

	<s:simpleType name="gender">
		<s:restriction base="s:string">
			<s:enumeration value="Male"/>
			<s:enumeration value="Female"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="stringID">
		<s:restriction base="s:string">
			<s:pattern value="^[A-Za-z0-9\.\-\+_/]{1,50}$"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="dateOfBirth">
		<s:restriction base="s:dateTime">
			<s:minInclusive value="1900-01-01T00:00:00"/>
		</s:restriction>
	</s:simpleType>
	
	<s:simpleType name="merchantTransactionID">
		<s:restriction base="s:string">
			<s:pattern value="^[A-Za-z0-9\.\-\+_/\s]{1,50}$"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="twoLetterCode">
		<s:restriction base="s:string">
			<s:pattern value="^[A-Za-z]{2}$"/>
		</s:restriction>
	</s:simpleType>

	<s:complexType name="keyValueBasePair"
				   abstract="true">
		<s:sequence>
			<s:element minOccurs="1"
					   maxOccurs="1"
					   name="key"
					   type="stringID"/>
		</s:sequence>
	</s:complexType>

	<s:simpleType name="secureString">
		<s:restriction base="s:string">
			<s:pattern value="[^&lt;&gt;]*"/>
		</s:restriction>
	</s:simpleType>

	<s:simpleType name="emailAddress">
		<s:restriction base="s:string">
			<s:pattern value="^[A-Za-z0-9\._%\+\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,20}$"/>
		</s:restriction>
	</s:simpleType>	
	
</s:schema>

Handling of pending payments

When a withdrawal is blocked by the merchant due to missing documentation, the merchant may - upon receiving missing data - move the payment to state ToBeWithdrawn by sending an executePaymentAction request.

Example executePaymentActionRequest:

<executePaymentActionRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
      <merchantID>B2BTestmerchant</merchantID>
    <shopID>B2BTestshop</shopID>
    <paymentID>b2437930-aec9-4353-ab88-56ef2772692f</paymentID>
    <actionID>351202</actionID>
    <remark>test for documentation</remark>
</executePaymentActionRequest>

Example executePaymentActionResponse:

<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>1</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>371</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>PaymentStateReasonID</key>
            <value>1</value>
        </result>
    </actionResults>
</executePaymentActionResponse>

Mock testing

Not available.

Payment flow

When the cage clerk creates a payment, a request is sent to the merchant backend. The merchant has the chance to accept or decline this payment.

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment
         xmlns="http://www.cqrpayments.com/PaymentProcessing"
         xsi:type="paymentWithPaymentAccount">
	<merchantID>B2BTestMerchant<merchantID>
			<shopID>RealMoneyShop</shopID>
			<paymentMethod>
				<key>174</key>
				<value>CashWithdrawal</value>
			</paymentMethod>
			<merchantTransactionID>bdaf3842-c38a-4f26-b2c2-9f5d84d33a32_53</merchantTransactionID>
			<paymentID>c178ae4e-c5b2-4615-b5fa-95610939dab3</paymentID>
			<userID>e2bd129d-dfb4-47df-b665-d82dcf</userID>
			<paymentProvider>
				<key>123</key>
				<value>Kalixa</value>
			</paymentProvider>
			<amount currencyCode="EUR">10</amount>
			<creationType>
				<key>2</key>
				<value>MerchantOperator</value>
			</creationType>
			<userIP>127.0.0.1</userIP>
			<state>
				<id>fa306b77-ddd7-4b65-9266-26be7762ae01</id>
				<definition>
					<key>232</key>
					<value>Created</value>
				</definition>
				<createdOn>2023-07-21T10:58:13.6234336Z</createdOn>
				<paymentStateDetails>
					<detail xsi:type="keyIntValuePair">
						<key>PaymentStateReasonID</key>
						<value>1</value>
					</detail>
				</paymentStateDetails>
			</state>
			<isExecuted>false</isExecuted>
			<baseAmount currencyCode="EUR">10</baseAmount>
			<paymentDetails>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderExternalID</key>
					<value>47852301</value>
				</detail>
			</paymentDetails>
		</payment>
	</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationResponse (successful case):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resultCode>
	<key xmlns=http://www.cqrpayments.com/PaymentProcessing>0</key>
	<value
	       xmlns=http://www.cqrpayments.com/PaymentProcessing>ProcessedSuccessfully</value>
</resultCode>
<resultMessage/>
</handlePaymentStateChangedNotificationResponse>

Example handlePaymentStateChangedNotificationResponse (rejected case):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resultCode>
	<key xmlns=http://www.cqrpayments.com/PaymentProcessing>3</key>
	<value
	       xmlns=http://www.cqrpayments.com/PaymentProcessing>RefusedByRiskManagement</value>
</resultCode>
<resultMessage>Risk checks failed</resultMessage>
</handlePaymentStateChangedNotificationResponse>

Example handlePaymentStateChangedNotificationResponse (error case):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationResponse xmlns:xsd=http://www.w3.org/2001/XMLSchema
                                               xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
<resultCode>
	<key xmlns=http://www.cqrpayments.com/PaymentProcessing>400</key>
	<value
	       xmlns=http://www.cqrpayments.com/PaymentProcessing>TechnicalError</value>
</resultCode>
<resultMessage>Technical error occurred</resultMessage>
</handlePaymentStateChangedNotificationResponse>

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.

Example handlePaymentStateChangedNotificationRequest: