API structures

API structures are used in the API calls to pass the structured data in and out.

Rbit Structure

The rbit structure contains risk information about users, their accounts, and transactions.

Fields:

Field Required Type Description
receive_time Yes Integer (64 bits) The unixtime when the data in this rbit object was first obtained.
source Yes String (255 chars) Source of the information.
note No String (65535 chars) Free form note giving more details / context about the information. Used by Risk Analysts during manual review.
type Yes String (255 chars) The type of information you are sending in the rbit (see standard type values)
properties Yes Object Key-value pair of properties for this type. The properties of the rbit object will depend on the type (see standard types and their associated properties)
related_rbits No Array of rbit structures An array of rbits that are related to this rbit. For example, a person rbit can have address (type = "address") and social security number (type = "tax_id") rbits associated with that person sent as related rbits.

If an rbit is primarily associated with an associated object, then it should be passed as a top-level rbit and not as a related rbit. For example, a business phone number should be passed as a top-level for the account, whereas a home phone number for one employee should be passed as a related rbit associated with the person rbit.

You do not need to specify the parameters, "associated_object_type" and "associated_object_id" for rbits sent as "related rbits".

Examples:

Rbit

{
   "receive_time":1367958263,
   "note": "sending tax id for Wefarm company",
   "type":"tax_id",
   "source":"guidestar",
   "properties":{
      "tax_id":"53-0196605",
      "tax_id_country": "US",
      "tax_id_type": "business"
   }
}

Rbit (with related rbits)

{
  "receive_time": 1367958263,
  "type": "person",
  "source": "user",
  "properties": {
     "name": "Bill Clerico"
  },
  "related_rbits": [
    {
       "receive_time": 1367958263,
       "type": "tax_id",
       "source": "user",
       "note": "This is the ssn user provided.",
       "properties": {
          "tax_id": "087-97-8888",
          "tax_id_country": "US",
          "tax_id_type": "personal"
       }
    },
    {
       "receive_time": 1367958263,
       "type": "email",
       "source": "user",
       "properties":{
          "email": "test@wepay.com"
       }
    },
    {
       "receive_time": 1367958263,
       "type": "address",
       "source": "user",
       "properties":{
          "address": {
            "address1": "380 Portage Avenue",
            "city": "Palo Alto",
            "zip": "94085",
            "state": "CA",
            "country": "US"
          }
       }
    },
    {
       "receive_time": 1367958263,
       "type": "phone",
       "source": "user",
       "note": "This is the phone number user provided.",
       "properties":{
          "phone": "+1-415-555-5555",
          "phone_type": "work"
       }
    }
   ]
}

Receipt Line Item

Parameter Required Type Description
description Yes String (1024 chars) Line item description. Could be a normal line item, a discount line item, tax, or shipping
item_price Yes Decimal (64 bits) Item price per unit
quantity Yes Decimal (64 bits) Quantity of the line items
amount Yes Decimal (64 bits) Amount (item_price x quantity)
currency No String (3 chars) The currency used, default "USD"
project_name No String (1024 chars) Name of project this item is related to. If a separate "project" rbit is provided, this should match the project name in that rbit.
service_billing_method No String (255 chars) Standard values:
  • "free_form_entry": user entered or edited line item directly on invoice
  • "timed_billing_at_staff_rate": rate set per staff member and hours timed automatically
  • "timed_billing_at_task_rate": rate set per task and hours timed automatically
  • "timed_billing_at_project_rate": rate set per project and hours timed automatically
  • "hourly_billing_at_staff_rate": rate set per staff member and hours entered manually
  • "hourly_billing_at_task_rate": rate set per task and hours entered manually
  • "hourly_billing_at_project_rate": rate set per project and hours entered manually
  • "flat_project_amount": flat invoicing per project

Example:

Receipt Line Item

{
    "description": "test",
    "item_price": 30.0,
    "quantity": 10,
    "amount": 10.00,
    "currency": "USD"
}

Shipping Info Structure

Parameter Required Type Description
expected_delivery_time No Integer (64 bit) The timestamp when goods or services are expected to be delivered (unix seconds since Jan 1st 1970 UTC)
shipping_time No Integer (64 bit) The timestamp when goods have been shipped (unix seconds since Jan 1st 1970 UTC)
carrier No String (255 chars) The shipping carrier (USPS, FEDEX, etc)
tracking_number No String (255 chars) The tracking number for the shipping carrier
tracking_url No URL The URL for the tracking information
actual_delivery_time No Integer (64 bit) The timestamp when goods or services were actually delivered (unix seconds since Jan 1st 1970 UTC)

Example:

Shipping Info

{
      "expected_delivery_time": 1397510245,
      "shipping_time": 1397510245,
      "carrier": "USPS",
      "tracking_number": "YX-33333",
      "tracking_url": "http://www.example.com",
      "actual_delivery_time": 1397510245
}

Address Structure

The address structure contains information about a street address.

Fields:

Field Type Description
address1 String (60 chars) The first line of the street address.
address2 String (60 chars) The second line of the street address.
city String (30 chars) The city.
region String (30 chars) Must be the 2-letter US state code for US addresses. Represents subdivisions (e.g., provinces or states) for other countries. It is preferred that it contains standard the country subdivision code.
postal_code String (14 chars) The postcode/zip for the address.
country String (2 chars) The 2-letter ISO-3166-1 country code.

Example:

Address:

{
    "address1":"380 Portage Ave",
    "address2":"",
    "city":"Palo Alto",
    "region":"CA",
    "postal_code":"94306",
    "country":"US"
}
    

Shipping Address Structure

The shipping address structure contains information about a shipping address.

Fields:

Field Type Description
name String (255 chars) The name of the person.
address1 String (60 chars) The first line of the street address.
address2 String (60 chars) The second line of the street address.
city String (30 chars) The city.
region String (30 chars) Must be the 2-letter US state code for US addresses. Represents subdivisions (e.g., provinces or states) for other countries. It is preferred that it contains standard the country subdivision code.
postal_code String (14 chars) The postcode/zip for the address.
country String (2 chars) The 2-letter ISO-3166-1 country code.

Example:

Address:

{
    "name":"Bill Clerico",
    "address1":"380 Portage Ave",
    "address2":"",
    "city":"Palo Alto",
    "region":"CA",
    "postal_code":"94306",
    "country":"US"
}
    

Hosted Checkout Structure

There are two ways to have your customers make a payment. You can have the checkout url hosted by WePay or you can use tokenization.
Send the hosted_checkout object to have the checkout url hosted by WePay. Send either hosted_checkout (if you want the checkout url hosted by WePay) or payment_method (for tokenization) parameter. Do not send both parameters at the same time.

Fields:

Field Type Description
redirect_uri String (2083 chars) The URI the payer will be redirected to after payment (if available). If you do not pass a redirect_uri, the user will see a payment confirmation page (and if you are using the iframe we will send a postMessage to the parent window indicating that the payment is complete).
mode String (255 chars) What mode the checkout will be displayed in. The options are 'iframe' or 'regular'. Choose 'iframe' if this is an iframe checkout. Mode defaults to 'regular'.
fallback_uri String The URI used to redirect the payer if 3rd party cookies are not enabled for iframes.
auto_capture No Boolean If present and set to false, then this checkout will not progress past the state of 'authorized' until a call to /checkout/capture is made, or if 7 days pass without having called /checkout/capture, the checkout will transition to state 'cancelled'. This parameter can only be to set to false if funding_sources is constrained to accept only credit_card as a payment method.
shipping_fee Decimal The amount to be charged for shipping the item.
require_shipping Boolean Default is false. If set to true then the payer will be required to enter their shipping address when paying.
prefill_info Prefill Info Structure Information about payer to pre-fill certain fields in checkout flow.
funding_sources String What payment method to accept for this checkout. Must be sent as an array.

Options are: ["credit_card","payment_bank"] to accept both credit card and bank payments. ["credit_card"] to accept only credit card payments. ["payment_bank"] to accept only payment bank payments.

For example, if only credit card is selected, customers will see option to pay by credit card when they go to the WePay hosted checkout URL; they will not be able to pay using their bank account.

If funding_sources parameter is not specified, both credit card and bank account payments will be accepted in the checkout flow.

Note that this must be set to just ["credit_card"] if auto_capture is set to false.
theme_object Theme Object Structure The theme structure contains information to provide custom look-and-feel for the flows and emails.

Example:

{
  "redirect_uri": "http://www.test.com",
  "fallback_uri": "http://www.test.com",
  "shipping_fee": 2,
  "mode": "iframe",
  "require_shipping": true,
  "prefill_info": {
      "address": {
        "postal_code": "94085",
        "country": "US"
      }
   },
   "theme_object": {
       "name": "test",
       "primary_color": "ffffff",
       "background_color": "ffffff",
       "button_color": "000000",
       "secondary_color": "000000"
   },
  "funding_sources": ["credit_card"]
}

Payment Method Structure

Send the payment method object to pay for a checkout using previously acquired payment information, such as a credit card (for tokenization) or preapproval. Based on the type, only specify credit_card or preapproval fields. For example, if the payment method has type = "credit_card", specify "credit_card" field and do not specify "preapproval" field.

Fields:

Field Required Type Description
type Yes String (255 chars) Payment Method type. Set to "payment_bank", "credit_card", or "preapproval" to match the corresponding object type below. Only one corresponding object can be set.
payment_bank No Payment Bank Structure Object that specifies the payment bank.
credit_card No Credit Card Structure Object that specifies the credit card.
preapproval No Preapproval Structure Object that specifies the preapproval.

Example:

{
    "type": "credit_card",
    "credit_card": {
        "id": 1334
    }
}

Payment Method Response Structure

Contains information about the payment method used.

Fields:

Field Type Description
type String (255 chars) Payment Method type used in payment. Can be "credit_card" or "payment_bank".
credit_card Credit Card Structure Object that specifies the credit card used in payment. Available if "type" is "credit_card".
payment_bank Payment Bank Structure Object that specifies the payment bank used in payment. Available if "type" is "payment_bank"

Example:

{
    "type": "credit_card",
    "credit_card": {
        "id": 1334,
        "auto_capture": true
    }
}

Payer response structure

Contains information about the payer such as their name, email, and home address. This object is returned only if a payment has been made.

Fields:

Field Type Description
name String (255 chars) The name of the person paying (only returned if a payment has been made).
email String (255 chars) The email address of the person paying (only returned if a payment has been made).
home_address String (255 chars) The home address of the person paying (only returned if a payment has been made).

Example:

{
    "name": "John Doe",
    "email": "test@o.com",
    "home_address": {
        "address1": "350 Convention Way",
        "address2": "Suite 200",
        "city": "Redwood City",
        "region": "CA",
        "postal_code": "94063",
        "country": "US"
    }
}

Credit Card Structure

Object that specifies credit card ID used for tokenization.

Fields:

Field Required Type Description
id Yes Integer Credit Card ID from /credit_card/create
data No Credit Card additional data Structure for passing in additional credit card information.
auto_capture No Boolean If present and set to false, the credit card will not be automatically charged (will only authorizated) and the the associated checkout will not progress past the state of 'authorized' until a call to /checkout/capture is made, or if 7 days pass without having called /checkout/capture, the associated checkout will transition to state 'cancelled'.

Example:

{
    "id": 1234,
    "data" : {
        "transaction_token": "1234567890ABCDEF"
    },
    "auto_capture": true
}

Credit Card Additional Data

Object that specifies additional credit card data.

Fields:

Field Required Type Description
transaction_token No String Used for making a checkout call if the credit card was EMV enabled
emv_receipt No (response-only) EMV Receipt Structure Structure containing receipt information for EMV transactions. This parameter should not be added to requests. It will only be present in response structures.

Example:

{
    "transaction_token": "1234567890ABCDEF",
    "emv_receipt": {
        "application_label": null,
        "application_identifier": "A000000025010801",
        "terminal_identification": "001",
        "transaction_type": "00",
        "transaction_certificate": "8960887ACFD507FF",
        "authorization_code": "123456",
        "merchant_id": "123456789",
        "merchant_name": "EMV Merchant"
    }
}

EMV Receipt Structure

Structure containing receipt information for EMV transactions.

Fields:

Field Type Description
application_label String (64 chars) The label of the EMV Application.
application_identifier String (64 chars) The application identifier (AID).
terminal_identification String (64 chars) The terminal's identification number.
transaction_type String (2 chars) The type of financial transaction.
transaction_certificate String (16 chars) Cryptogram returned by the card when it approves a transaction.
authorization_code String (6 chars) The transaction authorization code
merchant_id String (64 chars) The merchant ID (mid) used for the transaction.
merchant_name String (256 chars) The merchant's name

Example:

{
    "application_label": "American Express",
    "application_identifier": "A000000025010801",
    "terminal_identification": "001",
    "transaction_type": "00",
    "transaction_certificate": "8960887ACFD507FF",
    "authorization_code": "123456",
    "merchant_id": "123456789",
    "merchant_name": "EMV Merchant"
}
    

Preapproval Structure

Object that specifies unique id of the preapproval associated with the checkout.

Fields:

Field Type Description
id Integer Preapproval Id from /preapproval/create

Example:

{
    "id": 1234
}

Email Message Structure

Specifies a short message to send to the payee and payer when a checkout is successful.

Fields:

Field Type Description
to_payee String A short message that will be included in the payment confirmation email to the payee.
to_payer String A short message that will be included in the payment confirmation email to the payer.

Example:

{
    "to_payee": "test",
    "to_payer: "test"
}

Fee Structure

Specifies the app_fee and fee_payer parameters for a checkout.

Fields:

Field Type Description
app_fee Decimal (64 bits) The dollar amount that the application will receive in fees. App fees go into the API applications WePay account. Limited to 20% of the checkout amount.
fee_payer String (255 chars)

Who will pay the fees (WePay's fees and any app fees).

Set to "payer" (case-sensitive) to charge fees to the person paying (Payer will pay amount + fees, and payee will receive amount).

Set to "payee" to charge fees to the person receiving money (Payer will pay amount, and payee will receive amount - fees).

Set to "payer_from_app" so that payer will be charged app fee (if there is one) and API application will be charged WePay fee.

Set to "payee_from_app" so that payee will be charged the app fee (if there is one) and the API application will be charged the WePay fee. Note that for the xxx_from_app calls: if the application's account goes negative, WePay will recover funds from bank account.

Defaults to "payer".

For EMV transactions the value must be either "payee" or "payee_from_app"

Example:

{
    "app_fee": 20,
    "fee_payer": "payer"
}

Payments Prefill_Info Structure

The payments prefill_info structure contains prefill information for checkout, preapprovals, and subscription flows.

Fields:

Field Type Description
name String (255 chars) The name of the person.
email String (255 chars) The email address of the person.
phone_number String (15 chars) The phone number of the person.
address String (255 chars) The street address.
city String (30 chars) The city.
state String (2 chars) The 2-letters US state code. Only for US addresses.
region String (30 chars) The region. Only for non-US addresses when available.
zip String (10 chars) The US zip or zip-plus code. Only for US addresses.
postcode String (14 chars) The postcode. Only for non-US addresses when available.
country String (2 chars) The 2-letters ISO-3166-1 country code.

Example:

{
    "name":"Bill Clerico",
    "phone_number":"555-555-5555"
}
    

KYC Prefill_Info Structure

The KYC prefill_info structure contains prefill information for the KYC flow.

Fields:

Field Type Description
name String (255 chars) The name of the person.
email String (255 chars) The email address of the person.
phone_number String (15 chars) The phone number of the person.
address String (255 chars) The street address.
city String (30 chars) The city.
state String (2 chars) The 2-letters US state code. Only for US addresses.
region String (30 chars) The region. Only for non-US addresses when available.
zip String (10 chars) The US zip or zip-plus code. Only for US addresses.
postcode String (14 chars) The postcode. Only for non-US addresses when available.
country String (2 chars) The 2-letters ISO-3166-1 country code.
dob String (10 chars) The person's date of birth in the format YYYY-MM-DD.
entity_name String (255 chars) Legal name of the business or organization.
url String (255 chars) URL of business or organization's website.
description String (255 chars) Description of business or organization

Example:

{
    "name":"Bill Clerico",
    "phone_number":"555-555-5555",
    "entity_name":"My Business Inc.",
    "url":"http://www.mybusiness.com"
}
    

Theme Structure

The theme structure contains information to provide custom look-and-feel for the flows and emails.

Fields:

Field Type Description
theme_id Integer (64 bits) The unique theme ID (assigned by WePay).
name String (64 chars) The name for the theme.
primary_color String (6 chars) The hex triplet for the primary color on important elements such as headers.
secondary_color String (6 chars) The hex triplet for the secondary color on elements such as info boxes, and the focus styles on text inputs.
background_color String (6 chars) The hex triplet for the the background color for onsite and iframe pages.
button_color String (6 chars) The hex triplet for the the color for primary action buttons.

Example:

{
    "theme_id":12345,
    "name":"API Theme for API App: My Sample Application",
    "primary_color":"FFFFFF",
    "secondary_color":"000000",
    "background_color":"004C64",
    "button_color":"0084A0"
}

Balances Structure

The balances structure contains information on the account balances and automated withdrawals. Accounts can have multiple balances (one for each currency they support).

Fields:

Field Type Description
currency String (3 chars) The ISO 4217 currency code.
balance Number The available balance for this account (specific to the currency specified).
incoming_pending_amount Number The amount of money that being sent to the account that is still pending.
outgoing_pending_amount Number The amount of money being settled to the merchant (either via check or ACH) that is still pending.
reserved_amount Number The amount of money held in reserves.
disputed_amount Number The amount of money disputed either via chargeback or through WePay.
withdrawal_type String (6 chars) How the money will be settled to the merchant (either "check" or "ach").
withdrawal_period String (6 chars) How often money will be settled to the merchant ("daily", "weekly", or "monthly").
withdrawal_next_time String (6 chars) The unix time stamp for the next scheduled settlement.
withdrawal_bank_name String (6 chars) The masked name of the entity funds will be settled to. If a check is being sent, this will be the name of the entity the check was mailed to (the "pay to the order of" field).

Example:

[
  {
    "currency":"USD",
    "balance":390.50,
    "incoming_pending_amount":635.30,
    "outgoing_pending_amount":210.00,
    "reserved_amount":0,
    "disputed_amount":0,
    "withdrawal_period":"daily",
    "withdrawal_type":"ach",
    "withdrawal_next_time":1370112217,
    "withdrawal_bank_name":"WellsFargo XXXXX3102"
  },
  {
    "currency":"CAD",
    "balance":40.50,
    "incoming_pending_amount":20.30,
    "outgoing_pending_amount":70.00,
    "reserved_amount":0,
    "disputed_amount":0,
    "withdrawal_period":"daily",
    "withdrawal_type":"ach",
    "withdrawal_next_time":1370112217,
    "withdrawal_bank_name":"TD Canada XXXXX4156"
  }
]
    

Fee Response Structure

Contains information about the app fee, processing fee paid to WePay, and fee_payer.

Fields:

Field Type Description
app_fee Decimal (64 bits) The dollar amount that the application will receive in fees. App fees go into the API applications WePay account. Limited to 20% of the checkout amount.
processing_fee Decimal (64 bits) The dollar amount paid to WePay as a fee.
fee_payer String (255 chars)

Who will pay the fees (WePay's fees and any app fees).

Set to "payer" (case-sensitive) to charge fees to the person paying (Payer will pay amount + fees, and payee will receive amount).

Set to "payee" to charge fees to the person receiving money (Payer will pay amount, and payee will receive amount - fees).

Set to "payer_from_app" so that payer will be charged app fee (if there is one) and API application will be charged WePay fee.

Set to "payee_from_app" so that payee will be charged the app fee (if there is one) and the API application will be charged the WePay fee. Note that for the xxx_from_app calls: if the application's account goes negative, WePay will recover funds from bank account.

Defaults to "payer".

Example:

{
        "app_fee": 20,
        "processing_fee": 20,
        "fee_payer": "payer"
}

Chargeback Response Structure

A chargeback occurs when a customer questions your charge with their bank or credit card company. When a customer disputes your charge, you are given the opportunity to respond to the dispute with evidence that shows the charge is legitimate.

The chargeback object specifies whether there was a chargeback and the amount chargebacked.

Fields:

Field Type Description
amount_charged_back Decimal (64 bits) If this checkout has been fully or partially charged back, this is the amount that has been charged back so far.
dispute_uri String The uri that payers can visit to open a dispute for this checkout. Do not store the returned URI on your side as it can change.

Example:

{
    "amount_chargeback": 40,
    "dispute_uri": ""
}

Refund Response Structure

You can use the /checkout/refund API call to refund a charge.
The refund object contains information about the amount refunded and reason for the refund.

Fields:

Field Type Description
amount_refunded Decimal (64 bits) If this checkout has been fully or partially refunded, this has the amount that has been refunded so far.
refund_reason String (255 chars) If the payment was refunded the reason why.

Example:

{
    "amount_refunded": 20,
    "refund_reason": "test"
}

Hosted Checkout Response Structure

Contains the URI for the checkout, redirect URI, mode, theme object, and shipping information.

Fields:

Field Type Description
checkout_uri String (2083 chars) The URI for the checkout.
mode String (255 chars) What mode the checkout was displayed in. The options are 'iframe' or 'regular'. Choose 'iframe' if this is an iframe checkout. Mode defaults to 'regular'.
redirect_uri String (2083 chars) The URI the payer will be redirected to after payment (if available).
auto_capture Boolean If false, then this checkout will not progress past the state of 'authorized' until a call to /checkout/capture is made, or if 7 days pass without having called /checkout/capture, the checkout will transition to state 'cancelled'.
shipping_fee Decimal The amount to be charged for shipping the item.
require_shipping Boolean If true then the payer was required to enter their shipping address when paying.
shipping_address Shipping Address Structure If 'require_shipping' was set to true and the payment was made, this will be the shipping address structure that the payer entered.
theme_object Theme Object Structure The theme structure contains information to provide custom look-and-feel for the flows and emails.

Example:

{
  "checkout_uri": "http://wepay.com/api/iframe/1346959482/90404e3d/api_checkout?iframe=1",
  "redirect_uri": "http://www.test.com",
  "auto_capture": true,
  "shipping_fee": 2,
  "require_shipping": true,
  "shipping_address": null,
  "theme_object": {
    "theme_id": 183446800,
    "name": "test",
    "primary_color": "ffffff",
    "secondary_color": "000000",
    "background_color": "ffffff",
    "button_color": "000000"
  },
  "mode": "iframe"
}

Account Currency Status Structure

The account currency status structure contains information about an account's ability to process incoming/outgoing payments for a particular currency.

Fields:

Field Type Description
currency String The ISO 4217 currency code.
incoming_payments_status String Ability to process incoming payments for this currency. Can be "ok" or "paused".
outgoing_payments_status String Ability to process outgoing payments for this currency. Can be "ok" or "paused".
account_review_status String Review status of an account for this currency. Can be "not_requested", "pending", or "review_ok".

Example:

{
  "currency":"USD",
  "incoming_payments_status":"ok",
  "outgoing_payments_status":"ok",
  "account_review_status":"pending"
}

International Phone Number Structure

The international phone number structure contains information to construct a valid E164 formatted phone number.

Fields:

Field Type Description
country_code String Numeric country code. Optional '+', followed by 1-3 digits.
phone_number String Phone number sans country code.

Example:

{
  "country_code":"+1",
  "phone_number":"5556667777"
}

QR Code Structure

Links to QR code images at varying resolutions.

Fields:

Field Type Description
@1x String Image URL for low-resolution displays; mobile devices.
@2x String Image URL for high-resolution displays; mobile devices.
@3x String Image URL for very high-resolution displays (iPhone 6s); mobile devices.
shared_secret String For users without a QR scanner.

Example:

{
    "@1x": "https://static.wepay.com/{path}/qr@1x.png",
    "@2x": "https://static.wepay.com/{path}/qr@2x.png",
    "@3x": "https://static.wepay.com/{path}/qr@3x.png",
    "shared_secret": "CsUWMeVN6Jaw)y4B)£JnhyYiJq£$(^jAoas1e%KfT1CSeBpd"
}

Payment Error Structure

This structure contains additional information about a payment error that occurred on a checkout.

Fields:

Field Required Type Description
type Yes String The error type. This will be set to "bank_account" and match the corresponding object type below.
bank_account No Bank Account Payment Error Structure Information regarding the error regarding the payment using a bank account.

Example:

{
    "type": "bank_account",
    "bank_account": {
        "code": "R23",
        "description": "Credit entry refused by receiver"
    }
}

Bank Account Payment Error Structure

This structure contains additional information related to the bank account payment error that occurred on a checkout.

Fields:

Field Required Type Description
code Yes String The bank account code. See below for the mapping for the list of codes to their descriptions.
description Yes String

A description of what the code means. See below for the mapping for the list of codes to their descriptions.

Example:

{
    "code": "R23",
    "description": "Credit entry refused by receiver"
}
Code Description Recommended Action
R01 Insufficient funds in account Payer needs to resubmit payment with updated account information or a new account.
R02 Account is closed Payer needs to resubmit payment with updated account information or a new account.
R03 No account on file Payer needs to resubmit payment with updated account information or a new account.
R04 Invalid account number Payer needs to resubmit payment with updated account information or a new account.
R05 Unauthorized debit to consumer account Bank rejected payment request, no follow-up suggested
R06 Returned at request of originating bank Payer needs to resubmit payment with updated account information or a new account.
R07 Authorization revoked by customer Payer needs to resubmit payment with updated account information or a new account.
R08 Payment stopped Payer needs to resubmit payment with updated account information or a new account.
R09 Insufficient collected funds in account being charged Payer needs to resubmit payment with updated account information or a new account.
R10 Customer advises not authorized or amount incorrect Bank rejected payment request, no follow-up suggested
R11 Check truncation return Payer needs to resubmit payment with updated account information or a new account.
R12 Account sold to another financial institution Payer needs to resubmit payment with updated account information or a new account.
R13 Invalid ACH routing number Payer needs to resubmit payment with updated account information or a new account.
R14 Payee is deceased Bank rejected payment request, no follow-up suggested
R15 Account holder is deceased Bank rejected payment request, no follow-up suggested
R16 Account funds have been frozen Payer needs to resubmit payment with updated account information or a new account.
R17 Item returned because of invalid data Payer needs to resubmit payment with updated account information or a new account.
R18 Improper effective date Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R19 Amount error Payer needs to resubmit payment with updated account information or a new account.
R20 Account does not allow ACH transactions or limit has been exceeded Payer needs to resubmit payment with updated account information or a new account.
R21 Invalid company identification Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R22 Invalid individual ID Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R23 Credit entry refused by receiver Payer needs to resubmit payment with updated account information or a new account.
R24 Duplicate entry Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R25 Addenda record error Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R26 Mandatory field error Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R27 Trace number error Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R28 Routing/transit number check digit error Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R29 Corporate customer advised not authorized Bank rejected payment request, no follow-up suggested
R30 RDFI not participant in check truncation program Payer needs to resubmit payment with updated account information or a new account.
R31 Permissible return entry Payer needs to resubmit payment with updated account information or a new account.
R32 Receiving bank non-settlement Payer needs to resubmit payment with updated account information or a new account.
R33 Return of item Payer needs to resubmit payment with updated account information or a new account.
R34 Limited participation originating bank Payer needs to resubmit payment with updated account information or a new account.
R35 Return of improper debit entry Payer needs to resubmit payment with updated account information or a new account.
R36 Return of improper credit entry Payer needs to resubmit payment with updated account information or a new account.
R37 Source document presented for payment Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R38 Stop payment on source document Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R39 Improper source document Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R40 Return of item by government agency Payer needs to resubmit payment with updated account information or a new account.
R41 Invalid Transaction Code Payer needs to resubmit payment with updated account information or a new account.
R42 Routing/transit number check digit error Payer needs to resubmit payment with updated account information or a new account.
R43 Invalid account number Payer needs to resubmit payment with updated account information or a new account.
R44 Invalid individual ID Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R45 Invalid individual or company name Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R46 Invalid payee indicator code Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R47 Duplicate enrollment Payer needs to resubmit payment with updated account information or a new account.
R50 State law affecting RCK acceptance Payer needs to resubmit payment with updated account information or a new account.
R51 Item is ineligible, notice not provided, signature not genuine, or original item altered for adjustment entry Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R52 Stop payment on item Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R53 Item and ACH entry presented for payment Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R61 Misrouted return - RDFI has placed incorrect routing/transit # in RDFI id field Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R67 Duplicate return Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R68 Untimely return - the return was not sent within the established timeframe Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R69 Field errors Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R70 Permissible return entry not accepted Payer needs to resubmit payment with updated account information or a new account.
R71 Misrouted dishonored return - incorrect routing/transit # in RDFI id field Payer needs to resubmit payment with updated account information or a new account.
R72 Untimely return - dishonored return was not sent within the established timeframe Payer needs to resubmit payment with updated account information or a new account.
R73 Timely original return - RDFI certifies the original return entry was sent within established timeframe for original returns Payer needs to resubmit payment with updated account information or a new account.
R74 Corrected return - RDFI is correcting a previous return entry that was dishonored because it contained incomplete or incorrect information Payer needs to resubmit payment with updated account information or a new account.
R75 Original return not a duplicate Payer needs to resubmit payment with updated account information or a new account.
R76 No errors found Payer needs to resubmit payment with updated account information or a new account.
R80 Cross-border payment coding error Payer needs to resubmit payment with updated account information or a new account.
R81 Non-participant in cross-border program Payer needs to resubmit payment with updated account information or a new account.
R82 Invalid foreign RDFI identification Payer needs to resubmit payment with updated account information or a new account.
R83 Foreign RDFI unable to settle Payer needs to resubmit payment with updated account information or a new account.
R84 Cross-border entry not processed by originating gateway operator Payer needs to resubmit payment with updated account information or a new account.
R94 Administrative return item was processed and resubmitted as a photocopy Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R95 Administrative return item was processed and resubmitted as a MICR-Split Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R97 Administrative return item was processed and resubmitted with corrected dollar amount Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R98 Indicates a return PAC (pre-authorized check); RDFI provides a text reason and indicated a new account number on the PAC itself Bank system error. Customer needs to use a different bank account, preferably at a different bank.
R99 Indicates a return PAC (pre-authorized check); RDFI provides a text reason on the PAC itself for which there is no equivalent return reason code Bank system error. Customer needs to use a different bank account, preferably at a different bank.