# Scheduled Merchant-Initiated Transaction scenario
Merchant can initiate payment transaction using stored credentials on a fixed schedule and using a fix amount. Below, decribes a possible scenario
# Step 1
- Cardholder buy a subscription from your store for the first time and agrees to place their card on file with the merchant. (The cardnolder should be charge a fix amount every month for a period of 1 year)
- The cardholder performs a payment by entering full card details.
- If the merchant is PCI SAQ-D Compliant, he can perform a full card payment else he should perform the payment using a payment-nonce.
- As it is the initial payment, the transaction is initiated by the cardholder. (flag the
merchant_initiated
set tofalse
). We also need to indicate that the transaction is part of a subscription by setting thetransaction.type: 2
(2 - Subscription).
Authorize a transaction using full card number
curl -X POST \
https://api.openacquiring.com/v1/merchants/w3z8dfhkzvfq0j9n/payment \
-H 'authorization: Basic ODZidWQ0Y2JremlxOXZmYzoweHI1ZDkwOHo2bmo4a2h6' \
-H 'content-type: application/json' \
-d '{
"intent":"auth"
,"merchant_initiated":false
,"payer":{
"payment_type":"CC"
,"funding_instrument":{
"credit_card":{
"number":"4005520201264821"
,"expire_month":12
,"expire_year":2020
,"cvv2":"123"
,"name":"Tom Hanks"
}
}
,"payer_info":{
"email":"TomHanks@gmail.com"
,"billing_address":{
"line1":"18 Avenue"
,"line2":"cassidy"
,"city":"Rose-Hill"
,"country_code":"mu"
,"postal_code":"72101"
,"state":""
,"phone":{
"country_code":"230"
,"number":"57976041"
}
}
}
}
,"payee":{
"email":"mail@test.com"
,"merchant_id":"w3z8dfhkzvfq0j9n"
}
,"transaction":{
"type":2
,"amount":{
"currency":"USD"
,"total":"300"
,"details":{
"subtotal":""
,"shipping":""
}
}
,"description":"purchase"
,"items":[
{
"sku":"100299S"
,"name":"Ultrawatch"
,"description":"Smart watch"
,"quantity":"1"
,"price":"500"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
},
{
"sku":"100269S"
,"name":"Drone"
,"description":"drone x"
,"quantity":"1"
,"price":"500"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
}
]
,"shipping_address":{
"recipient_name":"Tom Hanks"
}
,"soft_descriptor":{
"text":"test.com"
,"city":"london"
}
,"invoice_number":"123455"
}
,"custom":{
},
"capture_delay": 0.05,
"metadata":{
"CMS":"WooCommerce"
}
}'
Successfull Response
{
"id": "35ZQXK7H9YRD17JI6DNU",
"reference_id": "35ZQXK7H9YRD17JI6DNU",
"state": "authorised",
"result": {
"authorisation_code": "058607",
"risk_check": true,
"code": "0000"
},
"intent": "AUTH",
"payer": {
"payment_type": "CC",
"funding_instrument": {
"credit_card": {
"id": "9c22d208-4e25-47f8-8d32-c0e6d97c17c2",
"type": "Visa",
"expire_month": 12,
"expire_year": 2020,
"name": "Tom Hanks",
"cvv_check": "Y",
"avs_check": "S",
"last4": "4821",
"bin": "400552",
"is_default": true,
"bin_data": {
"bin": "400552",
"country_code": "MU",
"country_name": "Mauritius",
"bank_name": "MCB",
"card_scheme": "Visa",
"card_type": "Credit",
"card_category": "1"
}
}
},
"payer_info": {
"id": "0f053a05-9fa2-49a1-871f-3098e4b114e2",
"email": "TomHanks@gmail.com",
"name": "Tom Hanks",
"billing_address": {
"phone": {
"country_code": "230",
"number": "57976041"
},
"line1": "18 Avenue",
"line2": "cassidy",
"city": "Rose-Hill",
"country_code": "MU",
"postal_code": "72101",
"state": ""
}
}
},
"transaction": {
"amount": {
"currency": "USD",
"total": "300"
},
"type": "2",
"mode": "1",
"items": [
{
"sku": "100299S",
"name": "Ultrawatch",
"description": "Smart watch",
"quantity": "1",
"price": "500",
"shipping": "",
"url": ""
},
{
"sku": "100269S",
"name": "Drone",
"description": "drone x",
"quantity": "1",
"price": "500",
"shipping": "",
"url": ""
}
],
"shipping_address": {
"recipient_name": "Tom Hanks",
"phone": {}
},
"invoice_number": "123455"
},
"custom": {},
"delayed_capture_time": "2020-09-06T21:53:18Z",
"create_time": "2020-09-06T21:50:18Z",
"three_d": {}
}
# Step 2
- If the merchant is managing the recurring payment flow inhouse, The might need to save the
reference_id
for future use. - For PCI SAQ-D merchants, they might choose to save the full card details on their servers.
- For non PCI merchants, they might choose to save the Payer details and associated
payer.funding_instrument.credit_card.id
.
- If the merchant is managing the recurring payment flow inhouse, The might need to save the
# Step 3
Merchants with custom recurring payment flow will on the next billing date, initiate a recurring payment without the interaction of the payer.
To initiate subsequent scheduled merchant initiated transaction (flag the
merchant_initiated
set totrue
) We need to indicate that the transaction is part of a subscription by setting thetransaction.type: 2
(2 - Subscription) and referencing the initial payment by using the savedreference_id
. (previous_payment_id:<reference_id>
)If the merchant is PCI SAQ-D and stores the card details on his own server. The merchant will perform a full card payment with the flag
payer.funding_instrument.credit_card.stored: true
set to true.
Authorize a second payment using full card number
curl -X POST \
https://api.openacquiring.com/v1/merchants/w3z8dfhkzvfq0j9n/payment \
-H 'authorization: Basic ODZidWQ0Y2JremlxOXZmYzoweHI1ZDkwOHo2bmo4a2h6' \
-H 'content-type: application/json' \
-d '{
"intent":"auth"
,"merchant_initiated":true
,"previous_payment_id": 35ZQXK7H9YRD17JI6DNU
,"payer":{
"payment_type":"CC"
,"funding_instrument":{
"credit_card":{
"number":"4005520201264821"
,"expire_month":12
,"expire_year":2020
,"cvv2":"123"
,"name":"Tom Hanks"
,"stored":true
}
}
,"payer_info":{
"email":"TomHanks@gmail.com"
,"billing_address":{
"line1":"18 Avenue"
,"line2":"cassidy"
,"city":"Rose-Hill"
,"country_code":"mu"
,"postal_code":"72101"
,"state":""
,"phone":{
"country_code":"230"
,"number":"57976041"
}
}
}
}
,"payee":{
"email":"mail@test.com"
,"merchant_id":"w3z8dfhkzvfq0j9n"
}
,"transaction":{
"type": 2
,"amount":{
"currency":"USD"
,"total":"300"
,"details":{
"subtotal":""
,"shipping":""
}
}
,"description":"purchase"
,"items":[
{
"sku":"100299S"
,"name":"Ultrawatch"
,"description":"Smart watch"
,"quantity":"1"
,"price":"500"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
},
{
"sku":"100269S"
,"name":"Drone"
,"description":"drone x"
,"quantity":"1"
,"price":"500"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
}
]
,"shipping_address":{
"recipient_name":"Tom Hanks"
}
,"soft_descriptor":{
"text":"test.com"
,"city":"london"
}
,"invoice_number":"123455"
}
,"custom":{
},
"capture_delay": 0.05,
"metadata":{
"CMS":"WooCommerce"
}
}'
- if the merchant is not PCI SAQ-D and uses our Vault to store credit card details. The merchant will need to specify the credit_card_id retrieved and stored from the initial payment.
curl -X POST \
https://api.openacquiring.com/v1/merchants/w3z8dfhkzvfq0j9n/payment \
-H 'authorization: Basic ODZidWQ0Y2JremlxOXZmYzoweHI1ZDkwOHo2bmo4a2h6' \
-H 'content-type: application/json' \
-d '{
"intent":"auth"
,"merchant_initiated":true
,"previous_payment_id": 35ZQXK7H9YRD17JI6DNU
,"payer":{
"payment_type":"CC"
,"funding_instrument":{
"credit_card_token":{
"credit_card_id":"9c22d208-4e25-47f8-8d32-c0e6d97c17c2"
}
}
,"payer_info":{
"email":"testclient@gmail.com"
,"billing_address":{
"line1":"18 Avenue"
,"line2":"Test"
,"city":"city name"
,"country_code":"GB"
,"postal_code":"W1 2"
,"state":""
,"phone":{
"country_code":"+1"
,"number":"0900099990"
}
}
}
}
,"payee":{
"email":"mail@merchantdomain.com"
,"merchant_id":"w3z8dfhkzvfq0j9n"
}
,"transaction":{
"type": 2
,"amount":{
"currency":"USD"
,"total":"200.00"
,"details":{
"subtotal":""
,"shipping":""
}
}
,"description":"purchase"
,"items":[
{"sku":"100299S"
,"name":"Ultrawatch"
,"description":"Smart watch"
,"quantity":"1"
,"price":"110.00"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
},
{"sku":"100269S"
,"name":"Drone"
,"description":"drone x"
,"quantity":"2"
,"price":"45"
,"shipping":"20"
,"currency":"USD"
,"url":""
,"image":""
,"tangible":"true"
}
]
,"shipping_address":{
"recipient_name":"Tom Hanks"
}
,"invoice_number":"123455"
}
,"custom":{
"field1":"this is a test"
}
}'