MuchBetter withdraw
Payment Method MuchBetter is an innovative, mobile-only payments solution available on both IOS and Android platforms. Customers pay merchants using their MuchBetter account balance. Customers may also receive money from merchants, top up funds (via a number of methods such as credit/debit cards, bank transfers, cash etc.),
The following method IDs are covered in this section:
ID | Name | Credit/Debit State |
---|---|---|
319 | MuchBetterWithdrawal | WithdrawnByProvider (20) |
Payment method interaction type: Synchronous execution (see Interaction Types).
- User initiates a payment via MuchBetter
- Merchant sends a initiatePaymentRequest to PXP payment service
- PXP payment service sends PUSH request to MuchBetter
- PUSH response is returned to PXP payment service
- PXP payment service calls MuchBetter's "Check transaction status" API
- PXP payment service receives a query response with transaction status "COMPLETED" and moves the payment to state "WithdrawnByProvider".
- Merchant is sent the initiatePaymentResponse
Redirect Integration
Currently not supported.
Sequence diagram
Backend2Backend Integration
The following table contains the fields to be sent in the initiatePaymentRequest.specificPaymentAccountData
xml section:
key (value type, account type, required) | value |
---|---|
AccountNumber (string, required) | User's phone number in international format without '+' sign. E.g. 447624222722 where 44 is country code and 7624222722 is user's mobile. |
The following parameters can be provided in initiatePaymentRequest.specificPaymentData
:
key (value type, account type, required) | value |
---|---|
PaymentDescription (string) | Billing descriptor |
PaymentDescriptionLanguageCode (string) | Two characters language code |
Scenario: Successful Payment
Example: initiatePaymentRequest
<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
<merchantID>KalixaAcceptDemo</merchantID>
<shopID>KalixaAcceptDemo</shopID>
<merchantTransactionID>cfd234da2-6ada-abddd-94bf-wadf2-4</merchantTransactionID>
<paymentMethodID>319</paymentMethodID>
<amount currencyCode="EUR">2.00</amount>
<userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
<userIP>127.0.0.1</userIP>
<userSessionID>7495c35f-3c55-4a08-a0a0-03f3ed917fbc</userSessionID>
<creationTypeID>1</creationTypeID>
<specificPaymentData>
<data xsi:type="keyStringValuePair">
<key>PaymentDescription</key>
<value>PaymentDescription</value>
</data>
<data xsi:type="keyStringValuePair">
<key>PaymentDescriptionLanguageCode</key>
<value>en</value>
</data>
</specificPaymentData>
<paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc6111-3</paymentAccountID>
<paymentAccount>
<specificPaymentAccountData>
<data xsi:type="keyStringValuePair">
<key>AccountNumber</key>
<value>447624222722</value>
</data>
</specificPaymentAccountData>
</paymentAccount>
</initiatePaymentRequest>
Example: initiatePaymentResponse
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment xsi:type="paymentWithPaymentAccount">
<merchantID>KalixaAcceptDemo</merchantID>
<shopID>KalixaAcceptDemo</shopID>
<paymentMethod>
<key>319</key>
<value>MuchBetterWithdrawal</value>
</paymentMethod>
<merchantTransactionID>cfd234da2-6ada-abddd-94bf-wadf2-4</merchantTransactionID>
<paymentID>4e4de852-bf53-4f7a-80d2-ea9cb0ef0645</paymentID>
<userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
<paymentProvider>
<key>176</key>
<value>MuchBetter</value>
</paymentProvider>
<amount currencyCode="EUR">2.00</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>13d2faeb-b560-43b2-a2a1-c5514e4eb473</id>
<definition>
<key>120</key>
<value>PendingOnProvider</value>
</definition>
<createdOn>2018-11-30T10:23:48.6174473Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderResponseCode</key>
<value>PENDING</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">2</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>162798</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>25981572</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc6111-3</paymentAccountID>
</paymentAccount>
</payment>
</initiatePaymentResponse>
Notifications
The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.
Scenario: Successful Payment Notification
<?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>KalixaAcceptDemo</merchantID>
<shopID>KalixaAcceptDemo</shopID>
<paymentMethod>
<key>319</key>
<value>MuchBetterWithdrawal</value>
</paymentMethod>
<merchantTransactionID>cfd234da2-6ada-abddd-94bf-wadf2-4</merchantTransactionID>
<paymentID>4e4de852-bf53-4f7a-80d2-ea9cb0ef0645</paymentID>
<userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
<paymentProvider>
<key>176</key>
<value>MuchBetter</value>
</paymentProvider>
<amount currencyCode="EUR">2.00</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>fa844691-f90b-4a64-9929-23f6718fe2e7</id>
<definition>
<key>20</key>
<value>WithdrawnByProvider</value>
</definition>
<createdOn>2018-12-06T21:46:43.44</createdOn>
<paymentStateDetails xsi:nil="true" />
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">2.00</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>25981572</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>25981572</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc6111-3</paymentAccountID>
</paymentAccount>
</payment>
</handlePaymentStateChangedNotificationRequest>
State diagram
Updated almost 6 years ago