Create An Account

 

In this section, you will learn how to:

  1. Use the Legal Entity and Payout Method IDs in a POST /accounts API request
  2. Find your submerchant's Account ID in the id parameter of the API response

This step uses the Pre-Release 3.0.rc.1.1 Api-Version header and API specification, which can be seen here.

Once you've received a Legal Entity and Payout Method ID, use them to create an Account in a POST /accountswhich will collect additional submerchant data.

Required Account Fields

Click to view all required Payout Method fields
FieldRequirement
Api-Version headerrequires 3.0.rc.1.1 value
legal_entity_idrequired
name
transaction division / business name
required
description
TD description/ business description
required
convenience_fee_amountrequired
transaction_typeonly the value internet is currently supported
Fields nested in the industry object
category_detailrequired
merchant_category_coderequired
Fields nested in the onboarding_location object (to represent the account address)
cityrequired
countryrequired
line1required
line2optional
postal_coderequired
regionrequired
Fields nested in the accepted_methods_of_payment.countries.US object
At least 1 method of payment (e.g. AmEx, Visa, etc) is required
visa.card_not_present.creditTo enable Visa, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
master_card.card_not_present.creditTo enable MasterCard, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
diners_club.card_not_present.creditTo enable Diners Club, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
jcb.card_not_present.creditTo enable JCB, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
discover.card_not_present.creditTo enable Discover, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
american_express.card_not_present.creditTo enable AmericanExpress, this parameter must be set to true
Note that the debit option is not currently supported; the value must be false if passed
american_express.configurations.transaction_codeRequired for conveyed; defaults to settled if not provided
american_express.configurations.se_numberConditionally required when the value set for transaction_code is conveyed
american_express.configurations.seller_idOptional
electronic_check.card_not_presentRequires true to enable ECheck
electronic_check.configurations.company_nameConditionally required if ECheck is being enabled
electronic_check.configurations.descriptionConditionally required if ECheck is being enabled
Fields nested in the payout.currencies.USD object
payout_method_idRequired
Identify the merchant's primary payout method. Send the payout method ID that you intend to send sales payouts to. If either refunds or adjustments payouts are excluded from this request, they will also be sent to this payout method.
periodRequired
Fields nested in the payout.currencies.USD.payout_purpose object
sales_payout.payout_method_idRequired
sales_payout.periodRequired
fees_payout.payout_method_idRequired if setting a different payout method for fees
fees_payout.periodRequired if setting a different payout method for fees
adjustment_payout.payout_method_idRequired if setting a different payout method for adjustments
adjustment_payout.periodRequired if setting a different payout method for adjustments
refunds_payout.payout_method_idRequired if setting a different payout method for refunds
refunds_payout.periodRequired if setting a different payout method for refunds

Use the following headers in the API request:

Copy
Copied
curl -X POST \
  --url 'https://stage-api.wepay.com/accounts' \
  -H 'App-Id: {App-Id}'\
  -H 'App-Token: {App-Token}'\
  -H 'Accept: application/json'\
  -H 'Api-Version: 3.0.rc.1.1'\
  -H 'Content-Type: application/json' \
  --data-raw ``

With the following JSON body:

Copy
Copied
{
"legal_entity_id": "{id-from-step-1}",
"name": "sole Account",
"description": "sole account with citizen bank",
"convenience_fee_amount": 1337,
"industry": {
  "category_detail": "Heating, Plumbing, and Air Conditioning Contractors",
  "merchant_category_code": "1711"
},
"onboarding_location": {
  "line1": "8584 notdone Street",
  "city": "San Francisco",
  "postal_code": "94101",
  "region": "CA",
  "country": "US"
},
"transaction_type": "internet",
"payout": {
	"currencies": {
		"USD": {
			"payout_method_id": "00000000-0000-0000-0000-0000013762ce",
			//The merchant's primary payout method. Send the payout method ID that you intend to send sales payouts to. If either refunds or adjustments payouts are excluded from this request, they will also be sent to this.
			"period": "daily",
			"payout_purpose": {
				"sales_payout":
				{
					"payout_method_id": "00000000-0000-0000-0000-0000013762ce",
					//Payout submerchants' credits from payments, this is the primary payout method for the merchant.
					"period": "weekly"
				},
				"fees_payout":
				{
					"payout_method_id": "00000000-0000-0000-0000-0000013762cf",
					//The ID for Partner bank account where processing fees will be deposited. This has to be unique from sales, refunds and adjustments payouts, as fees are collected by your, the partner, and not the merchant. This value must be unique and cannot be missing. It is a mandatory field and the onboarding will fail if the conditions are not met.
					"period": "monthly"
				}
				,
				"adjustment_payout":
				{
					"payout_method_id": "00000000-0000-0000-0000-0000013762ce",
					//Submerchants can have credits from adjustments sent to this payout method. If the field is blank then it will default to the provided Sales payout method. If you don't want this field to default to the Sales payout method, then explicitly pass a value to this field. 
					"period": "daily"
				},
				"refunds_payout":
				{
					"payout_method_id": "00000000-0000-0000-0000-0000013762ce",
					//Submerchants can have credits from refunds sent to this payout method. If the field is blank then it will default to the Sales payout method. If you don't want this field to default to the Sales payout method, then explicitly pass a value to this field. 
					"period": "daily"
				}
			}
		}
	}
},
"accepted_method_of_payments": {
	"countries": {
		"US": {
			"visa": {
				"card_not_present": {
					"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
					"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
				}
			},
			"master_card": {
					"card_not_present": {
						"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
						"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
					}
				},
				"diners_club": {
					"card_not_present": {
						"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
						"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
					}
				},
				"jcb": {
					"card_not_present": {
						"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
						"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
					}
				},
				"american_express": {
					"card_not_present": {
						"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
						"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
					},
					"configurations": {
						"transaction_code": "conveyed",  //NOTE: The transaction_code value must always be "conveyed"
						"se_number": "2420586430"  //Merchant's SE number
					}
				},
				"discover": {
					"card_not_present": {
						"credit": true, //Currently, credit under card_not_present must to be set to true for this Method of Payment to be selected
						"debit": false //Currently, debit is not supported even though it is available in the API. If passed, the value must be "false"
					}
				},
				"electronic_check": {
					"card_not_present": true,  //ECheck is only available for web transactions, so this value must be set to true
					"configurations": {  //These configurations will be displayed on the payer's bank statement along with charge details
						"company_name": "ipay",
						"description": "icantpay"
					}
				}
			}
		}
	}
}

The response will contain an id parameter, which will be the WePay Account ID for use in the API.

The submerchant ID (MID) will return on the merchant_id parameter of the Account response synchronously if there are no empty fields. Note that this field may synchronously return as null if there is missing information, but will asynchronously be added to the account. Subscribe to the API Notification topic accounts.updated to receive that asynchronous update.