The /account API calls

The account object represents a payment account for accepting payments. Use the following calls to create, view, and modify account objects on WePay:

Structures

Account States

The account object has the following states and the following possible state transitions. Your application can receive callback notifications when the account changes state:

Tip

Read the IPN tutorial for more information about callbacks.

State Definition

action required The account is not active and requires some action to be taken by the account owner.
pending The account was created using a temporary access token and needs to be confirmed by the account owner.
active The account is active and no further action is required.
disabled The account has been disabled by WePay and can no longer accept payments. An account will become disabled exactly 30 days after the first payment if no Know Your Customer (KYC) or settlement information is on file. WePay may also disable the account for security or regulatory reasons.
deleted The account has been deleted.

User States Diagram

Version: v2 2019-04-03

POST Endpoint

https://wepayapi.com/v2/account

/account

Use this call to lookup the details of a payment account on WePay. The payment account must belong to the user associated with the access token used to make the call.

Arguments

Parameter Required Type Description
account_id Yes Integer (64 bits) The unique ID of the account you want to look up.

Example

{
    "account_id": 12345
}

Response

Response Type Description
account_id Integer (64 bits) The unique ID of the account.
name String (255 chars) The name of the account.
state String (255 chars) The state of the account.

Possible values: action_required, pending, active, disabled, and deleted.
description String (65535 chars) The account description. This information is used by the WePay Risk and Support teams. The description should provide a clear explanation of the purpose and use of the account.
owner_user_id Integer (64 bits) The unique ID of the user who is the current financial owner of this account.
reference_id String (255 chars) The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). If not present, then this value is not set for the account.
callback_uri String (2083 chars) The URI that will receive IPNs for this account. You will receive an IPN whenever the account is verified or deleted. If not present, then this value is not set for the account.
type String (255 chars) The account type.

Possible values: nonprofit, business, and personal.
create_time Integer (64 bits) The Unix timestamp (UTC) when the account was created.
balances Array Array of account balances for each currency. See the structures page for more information.
statuses Array Array of incoming and outgoing payments status for each currency. See the structures page for more information.
action_reasons Array Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required.

Possible values: bank_account, kyc, and document.
disabled_reasons Array Array of strings explaining all reasons for why an account was disabled. It will be empty if the account is enabled. Possible values:

  • fraud: WePay has determined that fraudulent activity is occuring and is perpetrated by the account administrator (not a fraudulent transaction by a payer), or the account is being administered for fraudulent purposes. The account can be reinstated if an appeal has been made and the subsequent investigation reveals that any fraud found is not a result of fraudulent activities on the part of the account owner or administrator.

  • high_risk_chargeback: Based on an account history of excessive chargeback activity or a determination by WePay that the type of business is at high risk of excessive chargebacks. There is no remediation for this type of disablement.

  • reported_user: The platform has reported that they closed the merchant account. The account administrator must resolve issues with the platform before WePay can reinstate the account.

  • tos_violation: Occurs when the TOS agreement has been violated by the merchant. See our Terms of Service, section 7 for more information.

  • country_not_supported: Occurs when the merchant is not operating in one of WePay's supported countries or is accepting payment in a currency other than that of the country where they are registered.

    Example: The merchant is a British citizen or organization and the account is setup to accept payments in USD or CAD. The merchant must re-establish the account using the correct currency.

  • closed_for_loss: Occurs when the account balance becomes negative and remains so for a period of 30 days. Remediation of this state is on a case-by-case basis following review by the WePay Risk Team.

  • no_settlement_path: Occurs when more than 30 days have elapsed after the merchant accepts their first payment and no settlement path has been established. This is remediated by adding a settlement method (e.g., a bank account) and completing the KYC process.

disablement_time Integer (64 bits) For accounts that have not provided Know Your Customer (KYC) and settlement information, this is the Unix timestamp (UTC) when the account will be disabled. If null then the account is valid and not scheduled to be disabled.
country String (2 chars) The account's country of origin 2-letter ISO code

Possible values: US, CA.
currencies Array Array of supported currency strings for this account. Only one currency is allowed per account at this time.

Possible values: USD, CAD.
rbit_ids Array Array of rbits ids associated with the account.
fee_schedule

Array The account's fee schedule value. Has three child nodes:
  • slot: (64 bit integer) The 1-based number assigned to the custom fee schedule, if applied. If no custom fee schedule is applied, the value returned is 0.
  • description: (String) The textual description of the fee schedule.
  • currency: (String) The currency identifier that applies to the fee schedule.
If not present, then this value has not been set for the account.
supported_card_types Array Array of supported card type strings for this account.

Possible values: visa, mastercard, american_express, discover, jcb, and diners_club.
support_contact_number International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
image_uri String (255 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process. If null then this value is not set for the account.
gaq_domains Array An array of Google Analytics domains associated with the account. See the analytics tutorial for more information.
theme_object Theme Response Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails. If not present, then this value has not be set for the account.
referrer_type String (255 chars) How this account was referred to your platform. Possible values include: chase_inside_sales, chase_self_serve, and api.

Default: api
country_options Object Indicates whether the given account has opted in to accept debit cards,

Example of an Active Account

{
    "account_id": 12345,
    "name": "Example account",
    "state": "active",
    "description": "this account is just an example.",
    "owner_user_id": 539291,
    "reference_id": "123abc",
    "type": "personal",
    "create_time": 1367958263,
    "disablement_time": null,
    "country": "US",
    "currencies": [
        "USD"
    ],
    "balances": [
        {
            "currency": "USD",
            "balance": 390.5,
            "incoming_pending_amount": 635.3,
            "outgoing_pending_amount": 210.0,
            "reserved_amount": 0,
            "withdrawal_period": "daily",
            "withdrawal_type": "ach",
            "withdrawal_next_time": 1370112217,
            "withdrawal_bank_name": "WellsFargo XXXXX3102"
        }
    ],
    "statuses": [
        {
            "currency": "USD",
            "incoming_payments_status": "ok",
            "outgoing_payments_status": "ok",
            "account_review_status": "not_requested"
        }
    ],
    "image_uri": "https://stage.wepay.com/img/logo.png",
    "action_reasons": [

    ],
    "supported_card_types": [
        "visa",
        "mastercard",
        "american_express",
        "discover",
        "jcb",
        "diners_club"
    ],
    "disabled_reasons": [

    ],
    "fee_schedule": [
        {
            "slot": 9,
            "description": "2.9% + $0.30",
            "currency": "USD"
        }
    ],
    "support_contact_number": null,
    "referrer_type": "api",
    "country_options": {
        "debit_opt_in": null
    }
}

Example of an Disabled Account due to No Settlement Path

{
    "account_id": 12345,
    "name": "Example account",
    "state": "disabled",
    "description": "this account is just an example.",
    "owner_user_id": 539291,
    "reference_id": "123abc",
    "type": "personal",
    "create_time": 1457548586,
    "disablement_time": 1466097386,
    "country": "US",
    "currencies": [
        "USD"
    ],
    "action_reasons": [

    ],
    "disabled_reasons": [
        "no_settlement_path"
    ],
    "image_uri": null,
    "supported_card_types": [
        "visa",
        "mastercard",
        "american_express",
        "discover",
        "jcb",
        "diners_club"
    ],
    "gaq_domains": [
        ""
    ],
    "balances": [
        {
            "balance": 19425,
            "currency": "USD",
            "incoming_pending_amount": 0,
            "outgoing_pending_amount": 0,
            "reserved_amount": 0,
            "withdrawal_bank_name": null,
            "withdrawal_next_time": null,
            "withdrawal_period": null,
            "withdrawal_type": null
        }
    ],
    "statuses": [
        {
            "currency": "USD",
            "incoming_payments_status": "paused",
            "outgoing_payments_status": "paused",
            "account_review_status": "not_requested"
        }
    ],
    "support_contact_number": null,
    "referrer_type": "api",
    "country_options": {
        "debit_opt_in": null
    }
}

/account/find

Use this call to search the accounts of the user associated with the access token used to make the call. You can search by name or reference_id, and the response will be an array of all the matching accounts. If both name and reference_id are blank, this will return an array of all of the user’s accounts. Each element of the array in the response will include the same data as returned from the /account call.

Arguments

Parameter Required Type Description
name No String (255 chars) The name of the account for which you are searching.
reference_id No String (255 chars) The reference ID of the account for which you are searching (set by the app in in /account/create or /account/modify).
sort_order No String (255 chars) Sort the results of the search by time created. Use desc for most recent to least recent. Use asc for least recent to most recent.

Default: desc
start No Integer (64 bits) The start position for your search. For example, if start is 24 and limit is 50, the call returns 50 results. The first result would be the 24th search result. In total, the API call returns results 24-73.

Default: 0
limit No Integer The maximum number of returned entries. The maximum allowed is 50 results.

Default: 50

Example

{
    "name": "Example Acccount",
    "reference_id": "123abc"
}

Response

Response Type Description
account_id Integer (64 bits) The unique ID of the account.
name String (255 chars) The name of the account.
state String (255 chars) The state of the account.

Possible values: action_required, pending, active, disabled, and deleted.
description String (65535 chars) The account description. This information is used by the WePay Risk and Support teams. The description should provide a clear explanation of the purpose and use of the account.
owner_user_id Integer (64 bits) The unique ID of the user who is the current financial owner of this account.
reference_id String (255 chars) The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). If not present, then this value is not set for the account.
callback_uri String (2083 chars) The URI that will receive IPNs for this account. You will receive an IPN whenever the account is verified or deleted. If not present, then this value is not set for the account.
type String (255 chars) The account type.

Possible values: nonprofit, business, and personal.
create_time Integer (64 bits) The Unix timestamp (UTC) when the account was created.
balances Array Array of account balances for each currency. See the structures page for more information.
statuses Array Array of incoming and outgoing payments status for each currency. See the structures page for more information.
action_reasons Array Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required.

Possible values: bank_account, kyc, and document.
disabled_reasons Array Array of strings explaining all reasons for why an account was disabled. It will be empty if the account is enabled. Possible values:

  • fraud: WePay has determined that fraudulent activity is occuring and is perpetrated by the account administrator (not a fraudulent transaction by a payer), or the account is being administered for fraudulent purposes. The account can be reinstated if an appeal has been made and the subsequent investigation reveals that any fraud found is not a result of fraudulent activities on the part of the account owner or administrator.

  • high_risk_chargeback: Based on an account history of excessive chargeback activity or a determination by WePay that the type of business is at high risk of excessive chargebacks. There is no remediation for this type of disablement.

  • reported_user: The platform has reported that they closed the merchant account. The account administrator must resolve issues with the platform before WePay can reinstate the account.

  • tos_violation: Occurs when the TOS agreement has been violated by the merchant. See our Terms of Service, section 7 for more information.

  • country_not_supported: Occurs when the merchant is not operating in one of WePay's supported countries or is accepting payment in a currency other than that of the country where they are registered.

    Example: The merchant is a British citizen or organization and the account is setup to accept payments in USD or CAD. The merchant must re-establish the account using the correct currency.

  • closed_for_loss: Occurs when the account balance becomes negative and remains so for a period of 30 days. Remediation of this state is on a case-by-case basis following review by the WePay Risk Team.

  • no_settlement_path: Occurs when more than 30 days have elapsed after the merchant accepts their first payment and no settlement path has been established. This is remediated by adding a settlement method (e.g., a bank account) and completing the KYC process.

disablement_time Integer (64 bits) For accounts that have not provided Know Your Customer (KYC) and settlement information, this is the Unix timestamp (UTC) when the account will be disabled. If null then the account is valid and not scheduled to be disabled.
country String (2 chars) The account's country of origin 2-letter ISO code

Possible values: US, CA.
currencies Array Array of supported currency strings for this account. Only one currency is allowed per account at this time.

Possible values: USD, CAD.
rbit_ids Array Array of rbits ids associated with the account.
fee_schedule

Array The account's fee schedule value. Has three child nodes:
  • slot: (64 bit integer) The 1-based number assigned to the custom fee schedule, if applied. If no custom fee schedule is applied, the value returned is 0.
  • description: (String) The textual description of the fee schedule.
  • currency: (String) The currency identifier that applies to the fee schedule.
If not present, then this value has not been set for the account.
supported_card_types Array Array of supported card type strings for this account.

Possible values: visa, mastercard, american_express, discover, jcb, and diners_club.
support_contact_number International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
image_uri String (255 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process. If null then this value is not set for the account.
gaq_domains Array An array of Google Analytics domains associated with the account. See the analytics tutorial for more information.
theme_object Theme Response Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails. If not present, then this value has not be set for the account.
referrer_type String (255 chars) How this account was referred to your platform. Possible values include: chase_inside_sales, chase_self_serve, and api.

Default: api
country_options Object Indicates whether the given account has opted in to accept debit cards,

Example

[
    {
        "account_id": 12345,
        "name": "Example account",
        "state": "active",
        "description": "this account is just an example.",
        "owner_user_id": 539291,
        "reference_id": "123abc",
        "type": "personal",
        "create_time": 1367958263,
        "disablement_time": null,
        "country": "US",
        "currencies": [
            "USD"
        ],
        "balances": [
            {
                "currency": "USD",
                "balance": 390.5,
                "incoming_pending_amount": 635.3,
                "outgoing_pending_amount": 210.0,
                "reserved_amount": 0,
                "withdrawal_period": "daily",
                "withdrawal_type": "ach",
                "withdrawal_next_time": 1370112217,
                "withdrawal_bank_name": "WellsFargo XXXXX3102"
            }
        ],
        "statuses": [
            {
                "currency": "USD",
                "incoming_payments_status": "ok",
                "outgoing_payments_status": "paused",
                "account_review_status": "pending"
            }
        ],
        "action_reasons": [

        ],
        "disabled_reasons": [

        ],
        "supported_card_types": [
            "visa",
            "mastercard"
        ],
        "image_uri": null,
        "fee_schedule": null,
        "callback_uri": null,
        "theme_object": null,
        "support_contact_number": null,
        "referrer_type": "api",
        "country_options": {
            "debit_opt_in": null
        }
    }
]

/account/create

Use this call to create a new payment account for the user associated with the access token used to make this call. This call returns the same response as the /account call.

Note

Supplying rbits helps improve your experience and the experience of your users. You may be contractually required to include rbit information in your requests (despite being optional at the API level). Please review our Risk Certification guide

Arguments

Parameter Required Type Description
name Yes String (255 chars) The name for the account being created. For security reasons, the word wepay cannot be in the account name. 

Note: Account names cannot contain control characters or non-printable characters, like emojis.
description Yes String (65535 chars) The description of the account you want to create. Describe the account in terms of: goods or services paid for using this account, types of payees, purpose of the account, etc.
reference_id No String (255 chars) The reference ID of the account. It can be any string, but must be unique for the account.
type No String (255 chars) The type of account you are creating.

Possible values: nonprofit, business, and personal.

Note: This parameter is only used on the account temporarily -- until the merchant provides their own information. It does not impact KYC user interfaces. If your platform does not provide a value for this parameter, WePay will choose a default based on your application settings.

callback_uri No String (2083 chars) The URI that will receive IPNs for this account. If you set this parameter, you will receive an IPN whenever the account is verified or deleted. Otherwise, no notifications will be sent. See the Instant Payment Notifications page for more information.

Note: Your platform may test using ports in staging but ports are not allowed in production.
mcc No String (4 chars) The Merchant Category Code (MCC) indicating the merchant's type of business. See the MCC reference page for more information.

Note: This parameter is only used on the account temporarily -- until the merchant provides their own information. It does not impact KYC user interfaces. If your platform does not provide a value for this parameter, WePay will choose a default based on your application settings.

country No String (2 chars) The account's country of origin 2-letter ISO code.

Possible values: US, CA.

Default: US
currencies No Array Array of supported currency strings for this account. WePay currently supports only one currency per account.

Possible values: USD, CAD.

Default: USD
rbits No Array of Rbit Structures Array of rbit structures associated with the account.
country_options No Country Options Structure Used for Canadian accounts only.

Default: null
fee_schedule_slot

No Integer (64 bits) The custom fee schedule value to use for the merchant. Passing 0 will remove the custom fee schedule.
support_contact_number No International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
theme_object No Theme Request Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails
image_uri No String (2083 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process.
gaq_domains No Array An array of Google Analytics domains associated with the account. See the Google Analytics tutorial for more details.

Example

{
    "name": "Example Account",
    "description": "This is just an example WePay account.",
    "reference_id": "abc123",
    "country": "US",
    "currencies": [
        "USD"
    ]
}

Example with an inline rbit

{
    "name": "foo bar",
    "description": "bar foo",
    "reference_id": "abc123",
    "country": "US",
    "currencies": [
        "USD"
    ],
    "rbits": [
        {
            "receive_time": 1367958263,
            "type": "address",
            "source": "partner_database",
            "properties": {
                "address": {
                    "address1": "20 Main Street",
                    "city": "Sunnyvale",
                    "zip": "94085",
                    "state": "CA",
                    "country": "US"
                }
            }
        }
    ]
}

Response

Response Type Description
account_id Integer (64 bits) The unique ID of the account.
name String (255 chars) The name of the account.
state String (255 chars) The state of the account.

Possible values: action_required, pending, active, disabled, and deleted.
description String (65535 chars) The account description. This information is used by the WePay Risk and Support teams. The description should provide a clear explanation of the purpose and use of the account.
owner_user_id Integer (64 bits) The unique ID of the user who is the current financial owner of this account.
reference_id String (255 chars) The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). If not present, then this value is not set for the account.
callback_uri String (2083 chars) The URI that will receive IPNs for this account. You will receive an IPN whenever the account is verified or deleted. If not present, then this value is not set for the account.
type String (255 chars) The account type.

Possible values: nonprofit, business, and personal.
create_time Integer (64 bits) The Unix timestamp (UTC) when the account was created.
balances Array Array of account balances for each currency. See the structures page for more information.
statuses Array Array of incoming and outgoing payments status for each currency. See the structures page for more information.
action_reasons Array Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required.

Possible values: bank_account, kyc, and document.
disabled_reasons Array Array of strings explaining all reasons for why an account was disabled. It will be empty if the account is enabled. Possible values:

  • fraud: WePay has determined that fraudulent activity is occuring and is perpetrated by the account administrator (not a fraudulent transaction by a payer), or the account is being administered for fraudulent purposes. The account can be reinstated if an appeal has been made and the subsequent investigation reveals that any fraud found is not a result of fraudulent activities on the part of the account owner or administrator.

  • high_risk_chargeback: Based on an account history of excessive chargeback activity or a determination by WePay that the type of business is at high risk of excessive chargebacks. There is no remediation for this type of disablement.

  • reported_user: The platform has reported that they closed the merchant account. The account administrator must resolve issues with the platform before WePay can reinstate the account.

  • tos_violation: Occurs when the TOS agreement has been violated by the merchant. See our Terms of Service, section 7 for more information.

  • country_not_supported: Occurs when the merchant is not operating in one of WePay's supported countries or is accepting payment in a currency other than that of the country where they are registered.

    Example: The merchant is a British citizen or organization and the account is setup to accept payments in USD or CAD. The merchant must re-establish the account using the correct currency.

  • closed_for_loss: Occurs when the account balance becomes negative and remains so for a period of 30 days. Remediation of this state is on a case-by-case basis following review by the WePay Risk Team.

  • no_settlement_path: Occurs when more than 30 days have elapsed after the merchant accepts their first payment and no settlement path has been established. This is remediated by adding a settlement method (e.g., a bank account) and completing the KYC process.

disablement_time Integer (64 bits) For accounts that have not provided Know Your Customer (KYC) and settlement information, this is the Unix timestamp (UTC) when the account will be disabled. If null then the account is valid and not scheduled to be disabled.
country String (2 chars) The account's country of origin 2-letter ISO code

Possible values: US, CA.
currencies Array Array of supported currency strings for this account. Only one currency is allowed per account at this time.

Possible values: USD, CAD.
rbit_ids Array Array of rbits ids associated with the account.
fee_schedule

Array The account's fee schedule value. Has three child nodes:
  • slot: (64 bit integer) The 1-based number assigned to the custom fee schedule, if applied. If no custom fee schedule is applied, the value returned is 0.
  • description: (String) The textual description of the fee schedule.
  • currency: (String) The currency identifier that applies to the fee schedule.
If not present, then this value has not been set for the account.
supported_card_types Array Array of supported card type strings for this account.

Possible values: visa, mastercard, american_express, discover, jcb, and diners_club.
support_contact_number International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
image_uri String (255 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process. If null then this value is not set for the account.
gaq_domains Array An array of Google Analytics domains associated with the account. See the analytics tutorial for more information.
theme_object Theme Response Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails. If not present, then this value has not be set for the account.
referrer_type String (255 chars) How this account was referred to your platform. Possible values include: chase_inside_sales, chase_self_serve, and api.

Default: api
country_options Object Indicates whether the given account has opted in to accept debit cards,

Example

{
    "account_id": 3015357,
    "name": "Example Account",
    "state": "action_required",
    "description": "This is just an example WePay account.",
    "owner_user_id": 254815262,
    "type": "personal",
    "create_time": 1478291595,
    "disablement_time": null,
    "country": "US",
    "currencies": [
        "USD"
    ],
    "action_reasons": [
        "kyc",
        "bank_account"
    ],
    "disabled_reasons": [

    ],
    "image_uri": null,
    "supported_card_types": [
        "visa",
        "mastercard",
        "american_express",
        "discover",
        "jcb",
        "diners_club"
    ],
    "gaq_domains": [
        ""
    ],
    "balances": [
        {
            "balance": 0,
            "currency": "USD",
            "incoming_pending_amount": 0,
            "outgoing_pending_amount": 0,
            "reserved_amount": 0,
            "withdrawal_bank_name": null,
            "withdrawal_next_time": null,
            "withdrawal_period": null,
            "withdrawal_type": null
        }
    ],
    "statuses": [
        {
            "currency": "USD",
            "incoming_payments_status": "ok",
            "outgoing_payments_status": "paused",
            "account_review_status": "not_requested"
        }
    ],
    "support_phone_number": null,
    "referrer_type": "api",
    "country_options": {
        "debit_opt_in": null
    }
}

/account/modify

Use this call to update the specified properties of the account. This call returns the same response as the /account call.

Arguments

Parameter Required Type Description
account_id Yes Integer (64 bits) The unique ID of the account you want to modify.
name No String (255 chars) The name for the account. For security reasons, the word wepay cannot be in the account name.
description No String (65535 chars) The description for the account.
reference_id No String (255 chars) The reference ID for the account. Can be any string, but must be unique for the account.
callback_uri No String (2083 chars) The URI that will receive IPNs for this account. You will receive an IPN whenever the account is verified or deleted. See the Instant Payment Notifications reference page for more information.

Note: Your platform may test using ports in staging but ports are not allowed in production.
rbits No Array of Rbit Structures Array of rbit structures associated with the account.
country_options No Country Options Structure Used for Canadian accounts only.

Default: null
fee_schedule_slot

No Integer (64 bits) The custom fee schedule value to use for the merchant. Passing 0 will remove the custom fee schedule.
support_contact_number No International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
image_uri No String (2083 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process.
gaq_domains No Array The array of Google Analytics domains to be associated with the account. An empty array will remove all the Google Analytics domains previously associated with the account. See the Google Analytics tutorial for more details.
theme_object No Theme Request Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails.

Example

{
    "account_id": 12345,
    "name": "Example Account",
    "description": "This is just an example WePay account. Modify the text.",
    "reference_id": "abc123"
}

Response

Response Type Description
account_id Integer (64 bits) The unique ID of the account.
name String (255 chars) The name of the account.
state String (255 chars) The state of the account.

Possible values: action_required, pending, active, disabled, and deleted.
description String (65535 chars) The account description. This information is used by the WePay Risk and Support teams. The description should provide a clear explanation of the purpose and use of the account.
owner_user_id Integer (64 bits) The unique ID of the user who is the current financial owner of this account.
reference_id String (255 chars) The unique reference ID of the account (this is set by the application in the /account/create or /account/modify call). If not present, then this value is not set for the account.
callback_uri String (2083 chars) The URI that will receive IPNs for this account. You will receive an IPN whenever the account is verified or deleted. If not present, then this value is not set for the account.
type String (255 chars) The account type.

Possible values: nonprofit, business, and personal.
create_time Integer (64 bits) The Unix timestamp (UTC) when the account was created.
balances Array Array of account balances for each currency. See the structures page for more information.
statuses Array Array of incoming and outgoing payments status for each currency. See the structures page for more information.
action_reasons Array Array of action strings explaining all the actions that are required to make this account active. It will be empty if no action is required.

Possible values: bank_account, kyc, and document.
disabled_reasons Array Array of strings explaining all reasons for why an account was disabled. It will be empty if the account is enabled. Possible values:

  • fraud: WePay has determined that fraudulent activity is occuring and is perpetrated by the account administrator (not a fraudulent transaction by a payer), or the account is being administered for fraudulent purposes. The account can be reinstated if an appeal has been made and the subsequent investigation reveals that any fraud found is not a result of fraudulent activities on the part of the account owner or administrator.

  • high_risk_chargeback: Based on an account history of excessive chargeback activity or a determination by WePay that the type of business is at high risk of excessive chargebacks. There is no remediation for this type of disablement.

  • reported_user: The platform has reported that they closed the merchant account. The account administrator must resolve issues with the platform before WePay can reinstate the account.

  • tos_violation: Occurs when the TOS agreement has been violated by the merchant. See our Terms of Service, section 7 for more information.

  • country_not_supported: Occurs when the merchant is not operating in one of WePay's supported countries or is accepting payment in a currency other than that of the country where they are registered.

    Example: The merchant is a British citizen or organization and the account is setup to accept payments in USD or CAD. The merchant must re-establish the account using the correct currency.

  • closed_for_loss: Occurs when the account balance becomes negative and remains so for a period of 30 days. Remediation of this state is on a case-by-case basis following review by the WePay Risk Team.

  • no_settlement_path: Occurs when more than 30 days have elapsed after the merchant accepts their first payment and no settlement path has been established. This is remediated by adding a settlement method (e.g., a bank account) and completing the KYC process.

disablement_time Integer (64 bits) For accounts that have not provided Know Your Customer (KYC) and settlement information, this is the Unix timestamp (UTC) when the account will be disabled. If null then the account is valid and not scheduled to be disabled.
country String (2 chars) The account's country of origin 2-letter ISO code

Possible values: US, CA.
currencies Array Array of supported currency strings for this account. Only one currency is allowed per account at this time.

Possible values: USD, CAD.
rbit_ids Array Array of rbits ids associated with the account.
fee_schedule

Array The account's fee schedule value. Has three child nodes:
  • slot: (64 bit integer) The 1-based number assigned to the custom fee schedule, if applied. If no custom fee schedule is applied, the value returned is 0.
  • description: (String) The textual description of the fee schedule.
  • currency: (String) The currency identifier that applies to the fee schedule.
If not present, then this value has not been set for the account.
supported_card_types Array Array of supported card type strings for this account.

Possible values: visa, mastercard, american_express, discover, jcb, and diners_club.
support_contact_number International phone number structure The merchant's public-facing support contact number. If set, this phone number will be present on the payer's credit card statement.
image_uri String (255 chars) The URI for an image that you want to use for the accounts icon. This image will be used in the co-branded checkout process. If null then this value is not set for the account.
gaq_domains Array An array of Google Analytics domains associated with the account. See the analytics tutorial for more information.
theme_object Theme Response Structure The theme structure (a JSON object, not a JSON serialized string) you want to be used for the account's flows and emails. If not present, then this value has not be set for the account.
referrer_type String (255 chars) How this account was referred to your platform. Possible values include: chase_inside_sales, chase_self_serve, and api.

Default: api
country_options Object Indicates whether the given account has opted in to accept debit cards,

Example of an Active Account

{
    "account_id": 12345,
    "name": "Example account",
    "state": "active",
    "description": "this account is just an example.",
    "owner_user_id": 539291,
    "reference_id": "123abc",
    "type": "personal",
    "create_time": 1367958263,
    "disablement_time": null,
    "country": "US",
    "currencies": [
        "USD"
    ],
    "balances": [
        {
            "currency": "USD",
            "balance": 390.5,
            "incoming_pending_amount": 635.3,
            "outgoing_pending_amount": 210.0,
            "reserved_amount": 0,
            "withdrawal_period": "daily",
            "withdrawal_type": "ach",
            "withdrawal_next_time": 1370112217,
            "withdrawal_bank_name": "WellsFargo XXXXX3102"
        }
    ],
    "statuses": [
        {
            "currency": "USD",
            "incoming_payments_status": "ok",
            "outgoing_payments_status": "ok",
            "account_review_status": "not_requested"
        }
    ],
    "image_uri": "https://stage.wepay.com/img/logo.png",
    "action_reasons": [

    ],
    "supported_card_types": [
        "visa",
        "mastercard",
        "american_express",
        "discover",
        "jcb",
        "diners_club"
    ],
    "disabled_reasons": [

    ],
    "fee_schedule": [
        {
            "slot": 9,
            "description": "2.9% + $0.30",
            "currency": "USD"
        }
    ],
    "support_contact_number": null,
    "referrer_type": "api",
    "country_options": {
        "debit_opt_in": null
    }
}

Example of an Disabled Account due to No Settlement Path

{
    "account_id": 12345,
    "name": "Example account",
    "state": "disabled",
    "description": "this account is just an example.",
    "owner_user_id": 539291,
    "reference_id": "123abc",
    "type": "personal",
    "create_time": 1457548586,
    "disablement_time": 1466097386,
    "country": "US",
    "currencies": [
        "USD"
    ],
    "action_reasons": [

    ],
    "disabled_reasons": [
        "no_settlement_path"
    ],
    "image_uri": null,
    "supported_card_types": [
        "visa",
        "mastercard",
        "american_express",
        "discover",
        "jcb",
        "diners_club"
    ],
    "gaq_domains": [
        ""
    ],
    "balances": [
        {
            "balance": 19425,
            "currency": "USD",
            "incoming_pending_amount": 0,
            "outgoing_pending_amount": 0,
            "reserved_amount": 0,
            "withdrawal_bank_name": null,
            "withdrawal_next_time": null,
            "withdrawal_period": null,
            "withdrawal_type": null
        }
    ],
    "statuses": [
        {
            "currency": "USD",
            "incoming_payments_status": "paused",
            "outgoing_payments_status": "paused",
            "account_review_status": "not_requested"
        }
    ],
    "support_contact_number": null,
    "referrer_type": "api",
    "country_options": {
        "debit_opt_in": null
    }
}

/account/delete

Use this call delete an account. The user associated with the access token used must have permission to delete the account. An account may not be deleted if it has a balance or pending payments. Once the account is deleted, it will not appear in the results of an /account/find call, nor will you be able to un-delete the account.

Arguments

Parameter Required Type Description
account_id Yes Integer (64 bits) The unique ID of the account you want to delete.
reason No String (255 chars) Reason for deleting the account.

Example

{
    "account_id": 12345
}

Response

Response Type Description
account_id Integer (64 bits) The unique ID of the account that was successfully deleted.
state String (255 chars) The state of the account.

Example

{
    "account_id": 12345,
    "state": "deleted"
}

/account/get_update_uri

Use this call to add or update all incomplete items for an account such as Know Your Customer (KYC) or settlement info. It returns a URL that a user can visit to update information for their account.

Arguments

Parameter Required Type Description
account_id Yes Integer (64 bits) The unique ID of the account you want to add or update info for.
mode No String (255 chars) What mode the process will be displayed in. The options are iframe or regular. Choose iframe if you would like to frame the process on your site.

Default: regular
redirect_uri No String (2083 chars) The URI to which the user is be redirected to after completing the Know Your Customer (KYC) or settlement setup information input process.

Default: null

Note: WePay does not allow underscores in subdomains, and using an underscore will violate the matching domain requirement.

prefill_info

No KYC Prefill Info Structure Prefill the Know Your Customer (KYC) form with information that you already have about the merchant.

Example

{
    "account_id": 12345,
    "mode": "iframe"
}

Response

Response Type Description
account_id Integer (64 bits) The ID of the account that is updated by the URI.
uri String (2083 chars) The URI to add or update info for the specified account ID. Do not store the returned URI on your side as it can change.

Example

{
    "account_id": 12345,
    "uri": "http://stage.wepay.com/api/account_update_uri/12345"
}

/account/get_reserve_details

Use this call to return information about reserves and the release schedule for a particular account.

Warning

The /account/get_reserve_details call is being deprecated and its use is not recommended.

Arguments

Parameter Required Type Description
account_id Yes Integer (64 bits) The unique ID of the account you want to view reserve details for.
currency No String (255 chars) The currency for the reserves.

Default: USD

Example

{
    "account_id": 12345
}

Response

Response Type Description
account_id Integer (64 bits) The ID of the account you added the bank account to.
currency String (255 chars) The currency for the reserves.
reserved_amount Decimal (64 bits) The actual amount of money that is reserved and is not available for withdrawal.
withdrawals_schedule Array An array of time-amount pairs up to the next 10 withdrawals based on current balance, the reserves, and withdrawals schedules. The array will be empty if withdrawals are not yet configured or if there is no balance.

Example

{
    "account_id": 12345,
    "currency": "USD",
    "reserved_amount": 390.5,
    "withdrawals_schedule": [
        {
            "time": 1386096217,
            "amount": 390.5
        }
    ]
}

/account/settlement_setup

Use this call to define how WePay settles funds to a merchant. Know Your Customer (KYC) information must be complete before making this call. Partners need to determine if this user requires multifactor authentication (MFA) to change settlement information. If so, they must request that WePay send the MFA challenge using the user/mfa/send_challenge call, then provide a user interface to obtain the code from the user before making this call.

Arguments

Parameter Required Type Description
account_id Yes String (255 chars) The account ID for which an auto withdrawal is to be setup.
settlement_method Yes Settlement Method Structure A JSON structure, containing exactly one of these: settlement_bank_id as setup via /settlement_bank/create, or send_check_to_address which is the address to which recurring checks are sent.
frequency Yes enum How often funds are sent.

Possible values: daily, weekly, and monthly.

Note: daily is not allowed for the send_check_to_address settlement method.

Example - Settlement Method Bank

{
    "account_id": 1234555,
    "settlement_method": {
        "settlement_bank_id": 12345
    },
    "frequency": "daily"
}

Example - Settlement Method Check

{
    "account_id": 1234555,
    "settlement_method": {
        "send_check_to_address": {
            "address1": "380 Portage Ave",
            "address2": "Suite 200",
            "city": "Palo Alto",
            "region": "CA",
            "postal_code": "94603",
            "country": "US"
        }
    },
    "frequency": "monthly"
}

Response

Response Type Description
method String (255 chars) Indicates the method of payment.

Possible values: ach and check.
frequency String (255 chars) Indicates how often the withdrawal is made.

Possible values: daily, weekly, and monthly.

Example

{
    "method": "ach",
    "frequency": "daily"
}

Settlement Method Structure

Contains information about the bank to which funds are sent after withdrawal from a merchant’s account. One of settlement_bank_id or send_check_to_address must be set.

Fields

Field Required Type Description
settlement_bank_id No Integer (64 bits) Primary settlement bank ID for auto withdrawal.
send_check_to_address No Send Check To Address Structure Address information about where to send a check for auto withdrawal.

Example

{
    "settlement_method": {
        "settlement_bank_id": 122344567
    }
}

Send Check To Address Structure

Contains destination address information for a settlement check.

Fields

Field Required Type Description
address1 Yes String (255 chars) The street address where the check is to be sent.
address2 No String (255 chars) Additional address information.
city Yes String (255 chars) The city portion of the address where the check is to be sent.
region Yes String (255 chars) The state, province, or postal region where the check is to be sent. Must be from 0 to 30 characters in length and must consist of uppercase letters. Conformance to ISO 3166-2 is preferred but not required.
postal_code Yes String (255 chars) The postal code for the check address.
country Yes String (255 chars) The country where the check is to be sent.

example

{
    "address1": "123 Main Street",
    "address2": "Apartment 2B",
    "city": "Littletown",
    "region": "PA",
    "country": "US",
    "postal_code": "12345"
}

KYC Prefill Info Structure

Contains information about a merchant that can be used to prefill fields in the Know Your Customer (KYC) form.

Fields

Field Required Type Description
name No Name Structure The legal name of the account owner.
email No String (255 chars) The email address of the account owner.
phone No KYC Phone Structure The phone number of the account owner.
entity_phone No KYC Phone Structure The phone number of the entity. Note: This is used for businesses and organizations, not individuals.
address No KYC Address Structure The full address of the account owner.
entity_address No KYC Address Structure The full address of the entity. Note: This is used for businesses and organizations, not individuals.
date_of_birth No KYC Date Structure The date of birth of the account owner.
entity_name No String (255 chars) Name of the entity completing KYC.

Note: This is used for businesses and organizations, not individuals.
url No String (2083 chars) URL that identifies the entity completing KYC.

Note: This is used for businesses and organizations, not individuals.
description No String (255 chars) Description of the entity completing KYC.

Note: This is used for businesses and organizations, not individuals.

Example

{
    "name": {
        "first": "Kevin",
        "last": "Tester",
        "middle": "M"
    },
    "email": "kevin@example.com",
    "phone": {
        "country_code": "+1",
        "phone_number": "5556667777"
    },
    "entity_phone": {
        "country_code": "+1",
        "phone_number": "6668950375"
    },
    "address": {
        "address1": "123 Main street",
        "postal_code": "12345",
        "country": "US"
    },
    "entity_address": {
        "address1": "540 Fade street",
        "postal_code": "54321",
        "country": "US"
    },
    "date_of_birth": {
        "year": 1942,
        "month": 1,
        "day": 1
    },
    "entity_name": "Test legal entity",
    "url": "http://www.somelegalentity.com",
    "description": "This is a test description for test legal entity"
}

Country Options Structure

Enable debit card processing for Canadian based merchants.

See the Canadian user reference for more details.

Note

This should only be used for Canadian based merchants. It must be explicitly set to True in order for the merchant to accept payments from debit cards.

Arguments

Field Required Type Description
debit_opt_in No Boolean True if you want to enable debit card processing for the merchant. False otherwise.

Default: False

Example

{
    "debit_opt_in": true
}

Response

Field Type Description
debit_opt_in Boolean Indicates whether the given account has opted in to accept debit cards. For US accounts, the response will contain a literal null.

Example

{
    "debit_opt_in": true
}