Skip to main content
knowledgecenter.2checkout.com

Payment flow with offline payment methods

Overview

The following payment methods are supported for the offline payment flow: Purchase Order flow, Wire, Check, Konbini, Boleto Bancario.

Availability

Available for all 2Checkout accounts.

How E-wallet payments work 

Offline payment methods are payment methods where the order is registered by 2Checkout, however, the shopper finalizes the payment offline. 

This type of payment methods include payments done via bank transfers (Purchase Orders, Wire) or in-store payments (like Konbini, Boleto Bancario).

Since these payments take longer to process than online payments, once an order is placed it will remain in 'status = Pending' until the order status is updated by the payment provider. Once the payment is processed by them, then the order status will be updated to 'Complete' in the 2Checkout system.

Purchase Order flow

The Purchase Order flow payment method is available only for payments done by companies. The Purchase order (PO) flow is similar to the Wire payment method, as in the data needed for the completion of the payment will be available both in the API response, as well as in the email sent to the email address used in the Billing Details object.

Payment method object structure

Field name Type Required/Optional Description

Company

String

Required

The name of the company.

AutoApprove

Boolean

Optional

Use AutoApprove = true when you want the order to be automatically approved by the merchant. If false, the order needs to be approved manually from the Merchant Control Panel.

Default value: false.

InternalPONumber

String

Optional

Internal unique ID.

Request example

{
   "Language":"en",
   "Country":"US",
   "CustomerIP":"10.10.10.10",
   "Source":"Website",
   "ExternalCustomerReference":"externalCustomerId",
   "Currency":"USD",
   "MachineId":"123456789",
   "Items":[
      {
         "Code":"133685A7B4",
         "Quantity":1
      }
   ],
   "BillingDetails":{
      "FirstName":"Customer First Name",
      "LastName":"Customer Last Name",
      "CountryCode":"US",
      "State":"California",
      "City":"San Francisco",
      "Address1":"Example Street",
      "Zip":"90210",
      "Email":"example@email.com",
      "Company":"ACME Inc."
   },
   "PaymentDetails":{
      "Type":"PURCHASEORDER",
      "Currency":"USD",
      "PaymentMethod":{
         "AutoApprove":true,
         "InternalPONumber":84864848
      }
   }
}

After the order is placed, it will remain in 'status = Pending' until the payment is completed.

The additional information needed by the shopper in order to finalize the payment is provided in the PaymentDetails node.

"PaymentDetails":{
      "Type":"WIRE",
      "Currency":"usd",
      "PaymentMethod":{
         "Amount":"24.65",
         "Currency":"usd",
         "PaymentReference":"130738297",
         "RoutingNumber":null,
         "BankAccounts":[
            {
               "BankName":"Silicon Valley Bank USA",
               "BankCountry":"United States of America",
               "BankCity":null,
               "BankAddress":"3003 TASMAN DRIVE, SANTA CLARA, CA  95054, USA",
               "Beneficiary":"Avangate Inc dba 2Checkout",
               "BankAccount":"ABA 121140399 #3300578784",
               "BankAccountIban":null,
               "BankAccountSwiftCode":"SVBKUS6S",
               "Currency":"USD"
            }
         ],
         "Vendor3DSReturnURL":null,
         "Vendor3DSCancelURL":null,
         "InstallmentsNumber":null
      },
      "CustomerIP":"5.12.32.22"
   },

Wire  

Payment method object structure

There are no specific payment method data that is mandatory or optional. 

Request example

{
   "Language":"en",
   "Country":"US",
   "CustomerIP":"10.10.10.10",
   "Source":"Website",
   "ExternalCustomerReference":"externalCustomerId",
   "Currency":"USD",
   "MachineId":"123456789",
   "Items":[
      {
         "Code":"133685A7B4",
         "Quantity":1
      }
   ],
   "BillingDetails":{
      "FirstName":"Customer First Name",
      "LastName":"Customer Last Name",
      "CountryCode":"US",
      "State":"California",
      "City":"San Francisco",
      "Address1":"Example Street",
      "Zip":"90210",
      "Email":"example@email.com"
   },
   "PaymentDetails":{
      "Type":"WIRE",
      "Currency":"USD",
      "PaymentMethod":{

      }
   }
}

After the order is placed, it will remain in 'status = Pending' until the payment is completed.

The additional information needed by the shopper in order to finalize the payment is provided in the PaymentDetails node. 

"PaymentDetails":{
      "Type":"WIRE",
      "Currency":"usd",
      "PaymentMethod":{
         "Amount":"24.65",
         "Currency":"usd",
         "PaymentReference":"130738297",
         "RoutingNumber":null,
         "BankAccounts":[
            {
               "BankName":"Silicon Valley Bank USA",
               "BankCountry":"United States of America",
               "BankCity":null,
               "BankAddress":"3003 TASMAN DRIVE, SANTA CLARA, CA  95054, USA",
               "Beneficiary":"Avangate Inc dba 2Checkout",
               "BankAccount":"ABA 121140399 #3300578784",
               "BankAccountIban":null,
               "BankAccountSwiftCode":"SVBKUS6S",
               "Currency":"USD"
            }
         ],
         "Vendor3DSReturnURL":null,
         "Vendor3DSCancelURL":null,
         "InstallmentsNumber":null
      },
      "CustomerIP":"5.12.32.22"
   },

Check  

Payment method object structure

There are no specific payment method data that is mandatory or optional. 

Request example

{
   "Language":"en",
   "Country":"US",
   "CustomerIP":"10.10.10.10",
   "Source":"Website",
   "ExternalCustomerReference":"externalCustomerId",
   "Currency":"USD",
   "MachineId":"123456789",
   "Items":[
      {
         "Code":"133685A7B4",
         "Quantity":1
      }
   ],
   "BillingDetails":{
      "FirstName":"Customer First Name",
      "LastName":"Customer Last Name",
      "CountryCode":"US",
      "State":"California",
      "City":"San Francisco",
      "Address1":"Example Street",
      "Zip":"90210",
      "Email":"example@email.com"
   },
   "PaymentDetails":{
      "Type":"CHECK",
      "Currency":"USD",
      "PaymentMethod":{

      }
   }
}

After the order is placed, it will remain in 'status = Pending' until the payment is completed.

The additional information needed by the shopper in order to finalize the payment is provided via email. 

Konbini

Konbini, which means “convenience store” in Japanese, is a local cash-based payment method in Japan. It allows consumers to order goods and services online, and pay for them over the counter in a convenience store. Since it's a cash-based payment method, it does not involve any kind of credit card data to be entered/handled, it only accepts cash money to be paid by the shopper. 

Payment method object structure

Field name Type Required Description

Phone Number

String

Required

A valid phone number.

 Request example

{
   "Language":"en",
   "Country":"JP",
   "CustomerIP":"10.10.10.10",
   "Source":"Website",
   "ExternalCustomerReference":"externalCustomerId",
   "Currency":"JPY",
   "MachineId":"123456789",
   "Items":[
      {
         "Code":"133685A7B4",
         "Quantity":1
      }
   ],
   "BillingDetails":{
      "FirstName":"Customer First Name",
      "LastName":"Customer Last Name",
      "Address1":"Hirohito Blvd 23",
      "Address2":"floor 5",
      "City":"Osaka",
      "State":"",
      "CountryCode":"JP",
      "Phone":"80-1234-5678",
      "Email":"madalin.cojocariu@2checkout.com",
      "Company":"ACME Inc.",
      "Zip":"223343"
   },
   "PaymentDetails":{
      "Type":"KONBINI",
      "Currency":"JPY",
      "PaymentMethod":{

      }
   }
}

After the order is placed, it will remain in 'status = Pending' until the payment is completed.

In order to complete the payment, the shopper will use the reference number provided in the API response (PaymentMethod node, PaymentReference). Also, the shopper needs to access the link presented in the PaymentMethod node, URL.

   "PaymentDetails":{
      "Type":"KONBINI",
      "Currency":"jpy",
      "PaymentMethod":{
         "Amount":"2598",
         "Currency":"jpy",
         "PaymentReference":"560202991899",
         "URL":"https:\/\/www5.econ.ne.jp\/pay\/p_paymain.aspx?odrno=75817e847d8a8475737f8088788d867501",
         "Vendor3DSReturnURL":null,
         "Vendor3DSCancelURL":null,
         "InstallmentsNumber":null
      },

Once the shopper finalizes the payment in the store, the order status will be updated to 'Complete'.

Integration test cases

  1. Build a request with all the relevant information in order to place a new order. Make sure that when the order is sent in the API the response contains an order object (order was placed successfully).
  2. Make sure that you display the information needed by the shopper to finalize the payment.
  3. If you have any additional webhook integrations, make sure that the webhooks are correctly configured and that the notifications are received and processed successfully. 
  • Was this article helpful?