MobilePay payment actions via eComm API
Last updated: 23-Mar-2022
Rate this article:
Overview
This tutorial will help you understand how the MobilePay eComm API works and how to perform your first transaction through the MobilePay eComm API with Verifone.
Prerequisites
Before making a transaction, you need:
- A MobilePay Sandbox account (contact your sales rep)
- To obtain an API key
- The Payment Provider Contract ID associated with your MobilePay connection as part of your onboarding into Verifone Central.
Create a transaction
Make a POST request to /transactions endpoint. Here is an example of a payload:
{
"intent": "AUTHORIZE",
"paymentProviderContract": "YOUR_PAYMENT_PROVIDER_CONTRACT",
"amount": {
"value": 2700,
"currencyCode": "USD"
},
"customer": {
"email": "yourEmail@personal.example.com",
"payerId": "WDJJHEBZ4X2LY",
"phoneNumber": {
"phoneType": "MOBILE",
"value": "64646464"
},
"birthDate": "2000-01-31",
"identification": {
"taxIdentificationNumber": "123456",
"taxIdentificationType": "BR_CNPJ"
},
"address": {
"country": "IN",
"postalCode": "570023",
"countrySubdivision": "IN-MH",
"city": "yyy",
"addressLine1": "add1",
"addressLine2": "add2"
},
"firstName": "James",
"lastName": "Smith"
},
"applicationContext": {
"brandName": "MAHENDRA",
"locale": "he-IL",
"landingPage": "BILLING",
"returnUrl": "http://example.com/success",
"cancelUrl": "http://example.com/failure"
},
"shipping": {
"address": {
"country": "IN",
"postalCode": "91",
"countrySubdivision": "IN-MH",
"city": "mysore",
"addressLine1": "walstreet",
"addressLine2": "forcircle"
},
"fullName": "JamesSmith"
},
"items": [
{
"name": "Mac Laptop",
"unitAmount": {
"currencyCode": "USD",
"value": 100
},
"tax": {
"currencyCode": "USD",
"value": 100
},
"quantity": "1",
"description": "Dell Laptop",
"sku": "123",
"category": "PHYSICAL_GOODS"
},
{
"name": "Phone",
"unitAmount": {
"currencyCode": "USD",
"value": 100
},
"tax": {
"currencyCode": "USD",
"value": 100
},
"quantity": "10",
"description": "Apple phone",
"sku": "456",
"category": "PHYSICAL_GOODS"
},
{
"name": "Dell XPS 9310 13.4 FHD Display Thin & Light 11th Gen Laptop (i5-1135G7 / 8 GB / 512 SSD / Integrated Graphics / 1Yr Premium",
"unitAmount": {
"currencyCode": "USD",
"value": 100
},
"tax": {
"currencyCode": "USD",
"value": 100
},
"quantity": "1",
"description": "groceries",
"sku": "456",
"category": "PHYSICAL_GOODS"
},
{
"name": "Samsung 6.5 kg Fully-Automatic Top Loading Washing Machine (WA65A4002VS/TL, Imperial Silver, Center Jet Technology)",
"unitAmount": {
"currencyCode": "USD",
"value": 100
},
"tax": {
"currencyCode": "USD",
"value": 100
},
"quantity": "1",
"description": "product",
"sku": "456",
"category": "PHYSICAL_GOODS"
}
],
"dynamicDescriptor": "Vipps order DD123",
"merchantReference": "DD123-reference",
"detailedAmount": {
"discount": {
"currencyCode": "USD",
"value": 100
},
"shippingDiscount": {
"currencyCode": "USD",
"value": 100
},
"insurance": {
"currencyCode": "USD",
"value": 100
},
"handling": {
"currencyCode": "USD",
"value": 100
},
"shipping": {
"currencyCode": "USD",
"value": 100
}
}
}
Response example:
{
"id": "27241ae8-e72a-4586-9ef2-78dcb7a0ad9f",
"orderId": "4DD655383X489915V",
"createdAt": "2021-02-04T17:23:44Z",
"status": "INITIATED",
"approvalUrl": "https://www.sandbox.vipps.com/checkoutnow?token=4DD655383X489915V"
}
For details about the API reference and the request fields, you can review the Create Transaction API.
Approve the transaction
To approve the transactions, follow these steps:
- Open the approvalUrl link from the previous API response in the browser to approve the transaction. This would open the MobilePay portal and would show the login page.
- Log in using your MobilePay credentials and, after reviewing the transaction detail, approve the transaction.
- After the approval, you are redirected to the returnUrl that was passed in the applicationContext while creating the transaction.
- If you cancel the approval flow in between, then you would be redirected to the cancelUrl.
Authorize the transaction
Make a POST request to /transactions/:id/authorize for authorizing a transaction.
This step is only required if the intent is to authorize a transaction. If the intent is to capture a transaction, please skip this step.
The ID parameter in the URL is the ID from the response of the createTransaction API call.
Capture a payment
- Make a POST request to /transactions/:id/capture to capture a transaction payment.
- Use the ID parameter from the response of the createTransaction API call as a request parameter.
- If you want to capture the full transaction, then there is no need to send the amount in the request payload; instead, a null in the request body is to be sent.
- However, if you want to capture a partial amount of the transaction, then you can send the amount object in the request payload as shown below:
{
"amount": {
"value": 50,
"currencyCode": "USD"
}
}
Rate this article: