API structures
API structures are used in the API calls to pass the structured data in and out.
- Address Structure
- Fee Structure
- Email Message Structure
- Hosted Checkout Structure
- Payment Method Structure
- Payment Method Response Structure
- Shipping Address Structure
- Payments Prefill_Info Structure
- Theme Structure
- Fee Response Structure
- Hosted Checkout Response Structure
- Refund Response Structure
- Chargeback Response Structure
- Payer Response Structure
- Bank Data Response Structure
- Check Data Response Structure
- Credit Card Structure
- Credit Card Additional Data
- EMV Receipt Structure
- Payment Bank Structure
- Payment Bank Response Structure
- Withdrawal Data Response Structure
- Account Currency Status Structure
- International Phone Number Structure
- QR Code Structure
- Non Profit Information Structure
- Payment Error Structure
- Payment Bank Payment Error Structure
- Country Option Structure
Older version?
You can view the older version 2016-03-30 here.
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. |
state | String (2 chars) | The 2-letter US state code. Only for US addresses. |
region | String (2 chars) | The 2-letter Canadian province code. Only for Canadian addresses. |
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-letter ISO-3166-1 country code. |
Example:
US Address:
{ "address1":"380 Portage Ave", "address2":"", "city":"Palo Alto", "state":"CA", "zip":"94306", "country":"US" }
Non-US Address:
{ "address1":"100 Main St", "address2":"", "region":"ON", "city":"Toronto", "postcode":"M4E 1Z5", "country":"CA" }
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. |
state | String (2 chars) | The 2-letter US state code. Only for US addresses. |
region | String (2 chars) | The 2-letter Canadian province code. Only for Canadian addresses. |
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-letter ISO-3166-1 country code. |
Example:
US Address:
{ "name":"Bill Clerico", "address1":"380 Portage Ave", "address2":"", "city":"Palo Alto", "state":"CA", "zip":"94306", "country":"US" }
Non-US Address:
{ "name":"Bill Clerico", "address1":"100 Main St", "address2":"", "region":"ON", "city":"Toronto", "postcode":"M4E 1Z5", "country":"CA" }
Hosted Checkout Structure
Use this to have payers enter payment information on a WePay hosted checkout URL. Send either hosted_checkout or payment_method parameter. Do not send both parameters at the same time. If neither parameter is specified, default behavior will be hosted_checkout.
Fields:
Field | Required | Type | Description |
redirect_uri | No | 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 | No | 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 | No | String | The uri used to redirect the payer if 3rd party cookies are not enabled for iframes. |
shipping_fee | No | Decimal | The amount to be charged for shipping the item. |
require_shipping | No | Boolean | Default is false. If set to true then the payer will be required to enter their shipping address when paying. |
prefill_info | No | Prefill Info Structure | Information about payer to pre-fill certain fields in checkout flow. |
funding_sources | No | Array |
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. |
theme_object | No | 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": "main street", "zip": "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 } }
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). |
String (255 chars) | The email address of the person paying (only returned if a payment has been made). | |
home_address | Address Structure | The home address of the person paying (only returned if a payment has been made). |
Example:
{ "name": "John Doe", "email": "test@test.com", "home_address": { "address1": "350 Convention Way", "address2": "Suite 200", "city": "Redwood City", "state": "CA", "zip": "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. |
Example:
{ "id": 1234, "data" : { "transaction_token": "1234567890ABCDEF" } }
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" }
Payment Bank Structure
Object that specifies a payment bank ID.
Fields:
Field | Required | Type | Description |
id | Yes | Integer | Payment Bank ID |
Example:
{ "id": 1234 }
Payment Bank Response Structure
Object that specifies the payment bank used in payment.
Fields:
Field | Type | Description |
id | Integer | Payment bank ID used in payment |
name | String | Name of bank from which payment was drawn. |
type | String | Type of bank account from which payment was drawn. Can be "Checking" or "Savings". |
Example:
{ "id": 1234, "name": "WELLS FARGO BANK", "type": "Checking" }
Preapproval Structure
Object that specifies unique ID of the preapproval associated with the checkout.
Fields:
Field | Required | Type | Description |
id | Yes | 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 | Required | Type | Description |
to_payee | No | String | A short message that will be included in the payment confirmation email to the payee. |
to_payer | No | 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 | Required | Type | Description |
app_fee | No | 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 | No | 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. |
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" }
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 url for the checkout, redirect url, 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). |
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 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 (a JSON object, not a JSON serialized string) 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", "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" }
Bank Data Response Structure
The bank data structure contains information about the bank account for a withdrawal.
Fields:
Field | Type | Description |
bank_name | String | Nickname of the bank. |
account_last_four | String | Last four digits of the bank account. |
note | String (255 chars) | A short description for the reason of the withdrawal. |
Example:
{ "bank_name":"TestBank XXXXXX3123", "account_last_four":"3123", "note":"Withdrawing money from the account" }
Check Data Response Structure
The check data structure contains information about the check for a withdrawal.
Fields:
Field | Type | Description |
name | String (255 chars) | Name of the recipient. |
city | String (30 chars) | The city. |
state | String (2 chars) | The 2-letters US state code. Only for US addresses. |
zip | String (10 chars) | The US zip or zip-plus code. Only for US addresses. |
note | String (255 chars) | A short description for the reason of the withdrawal. |
Example:
{ "name":"Bill Clerico", "city":"Redwood City", "state":"CA", "zip":"94063", "note":"Withdrawing money from the account" }
Withdrawal Data Response Structure
The withdrawal data structure contains information about the withdrawal.
Fields:
Field | Type | Description |
create_time | Integer (64 bits) | The unixtime when the withdrawal was created. |
capture_time | Integer (64 bits) | The unixtime when the withdrawal was captured and credited to the payee's bank account. Returns 0 if withdrawal is not yet captured. |
redirect_uri | String (2083 chars) | The uri that the account owner will return to after completing the withdrawal. |
callback_uri | String (2083 chars) | The uri that we will post notifications to each time the state on this withdrawal changes. |
withdrawal_uri | String (2083 chars) | The uri that you will send the account owner to to complete the withdrawal. Do not store the returned URI on your side as it can change. |
Example:
{ "create_time":1332280083, "capture_time":0, "redirect_uri":"http://www.example.com/withdrawal/51341", "callback_uri":"http://www.example.com/withdrawal/callback/51341", "withdrawal_uri":"https://stage.wepay.com/api/withdrawal/54321/s341bxd" }
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 | Required | Description |
country_code | String | Yes | Numeric country code. Optional '+', followed by 1-3 digits. |
phone_number | String | Yes | 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" }
Non Profit Information Structure
This structure contains information about a non profit entity
Fields:
Field | Type | Description |
legal_name | String | Legal name of the non profit entity |
ein | String | Employer Identification number of the non profit entity |
Example:
{ "legal_name": "Org Name", "ein": "343644743" }
Payment Error Structure
This structure contains additional information about a payment error that occurred on a checkout. At present, only Pay With Bank (ACH) transactions may have additional information.
Fields:
Field | Type | Description |
type | String | The error type. This will be set to "payment_bank" and match the corresponding object type below. |
payment_bank | Payment Bank Payment Error Structure | Information regarding the error regarding the payment using a bank account. |
Example:
{ "type": "payment_bank", "payment_bank": { "code": "R23", "description": "Credit entry refused by receiver" } }
Payment Bank Payment Error Structure
This structure contains additional information related to the payment bank 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. |
Country Option Structure
The country option structure is currently used to enable debit card as a payment method in Canada.
Fields:
Field | Type | Description |
debit_opt_in | Boolean | Set to true to allow debit card as a payment method in Canada |
Example:
Allowing Debit Card Payment:
{ "debit_opt_in":true }
Not Allowing Debit Card Payment:
{ "debit_opt_in":false }