LogoLogo
System Status
  • Digital River API
  • Getting started
  • Using our services
    • Local pricing
    • Item classification
    • Subscriptions
    • e-Invoicing
  • Integration options
    • Low-code checkouts
      • Implementing a Prebuilt Checkout
      • Implementing a Components checkout
      • Offering local pricing
      • Using a shipping endpoint
      • Processing subscription acquisitions
      • Adding custom fields
      • Offering store credit
      • Displaying policies and getting consent
      • Collecting e-invoice information
      • Handling completed checkout-sessions
    • Direct integrations
      • Standard flow
      • Building checkouts
        • Checking out guest and registered customers
        • Describing line items
          • Setting the price of an item
          • Managing items with shared SKU identifiers
        • Providing address information
        • Handling shipping choice
        • Tax identifiers
        • Applying a discount
        • Setting the customer type
        • Providing the IP address
        • Selecting a currency
        • Initiating a charge
        • Setting the purchase location
        • Configuring taxes
        • Accessing regulatory fee information
        • Localizing invoices and credit memos
        • Providing an upstream identifier
        • Applying store credit
        • Handling e-invoicing requirements
        • Landed cost
        • Tax calculation inputs
        • Selling entities
        • Payment sessions
        • Applying store credit (legacy)
        • Country specs
      • Building payment workflows
        • Handling redirect payment methods
        • Handling delayed payment methods
      • Subscription acquisitions
        • Handling subscription acquisitions
        • Handling external subscription acquisitions
        • Subscription information
      • Digital River coordinated fulfillments
        • Checking inventory levels
        • Using shipping quotes
        • Reserving inventory items
        • Managing a fulfillment order
        • Cancelling a fulfillment order
    • Connectors
  • Order management
    • Processing orders
    • Handling a rejected order
    • Accessing invoices and credit memos
    • Fulfilling goods and services
    • Capturing and cancelling charges
    • Payment reauthorizations
    • Handling reversals
      • Return basics
        • Digital River coordinated returns
        • Third party coordinated returns
      • Refund basics
        • Issuing refunds
        • Refunding asynchronous payment methods
      • Disputes and chargebacks
    • Customer notifications
    • Responding to events
      • Events
        • Key event types
        • All event types
      • Webhooks
        • Creating a webhook
        • Digital River API safelist
        • Digital River signature
      • Expanding events
      • Preventing webhooks from getting disabled
    • Distributor model
  • Subscription Management
    • Managing a subscription
    • Managing an external subscription
  • Payments
    • Payment solutions
      • Drop-in payments
        • How Drop-in payments work
        • Drop-in payments integration guide
      • DigitalRiver.js with Elements
        • Elements integration guide
        • Configuring payment methods
          • Configuring Afterpay
          • Configuring Alipay+ (cross-border)
          • Configuring Alipay (domestic)
          • Configuring Amazon Pay
          • Configuring Apple Pay
          • Configuring Bancontact
          • Configuring BNP Paribas
          • Configuring BLIK
          • Configuring CCAvenue
          • Configuring Clearpay
          • Configuring Credit Cards
          • Configuring FPX Online Banking
          • Configuring Google Pay
          • Configuring iDEAL
          • Configuring Klarna
          • Configuring Konbini
          • Configuring Online Banking (IBP)
          • Configuring Online Banking (Korea Bank Transfer)
          • Configuring PayCo
          • Configuring PayPal
          • Configuring SEPA Direct Debit
          • Configuring Trustly
          • Configuring Wire Transfer
          • Common payment sources
          • Common payment objects
    • Supported payment methods
      • Afterpay
      • Alipay (domestic)
      • Alipay+ (cross-border)
      • Amazon Pay
      • Apple Pay
      • Bancontact
      • BNP Paribas
      • BLIK
      • CCAvenue
      • Clearpay
      • Credit Cards
      • FPX Online Banking
      • Google Pay
      • iDEAL
      • Klarna
      • Konbini
      • Korea Bank Transfer (Online Banking)
      • Online Banking (IBP)
      • Pay with Installments France
      • PayCo
      • PayPal
      • PayPal Billing Agreement
      • PayPal Credit
      • PayPal Pay in 3
      • PayPal Pay in 4
      • PayPal RatenZahlung (Installment Payment)
      • SEPA Direct Debit
      • Trustly
      • Wire Transfer
    • Source basics
      • Managing sources
      • Handling credit card sources
      • Retrieving sources
    • Authorization declines
    • PSD2 and SCA
      • How to ensure SCA compliance
    • Payment testing scenarios
  • Product management
    • Product basics
    • Managing SKUs
    • Using product details
    • Grouping SKUs
    • SKU-inventory item pairs
    • Managing inventory items
    • Regulatory fees
      • What are regulatory fees?
        • Fees terminology
        • Regulatory fee management
        • European regulatory fees
        • Compliance obligations
        • WEEE directive requirements
        • Copyright directive requirements
        • Compliance challenges
      • Managing regulatory fees
  • Customer management
    • Customer basics
    • Creating and updating customers
    • Setting up tax exemptions
    • Recording a customer's request to be forgotten
  • Financial reporting
    • Financials basics
    • Sales transactions
      • Returning a list of sales transactions
      • Getting a sales transaction by ID
    • Sales summaries
      • Returning a list of sales summaries
      • Getting a sales summary by ID
    • Payouts
      • Returning a list of payouts
      • Getting a payout by ID
      • Get a list of transactions included in payout by ID
  • Developer resources
    • Digital River API reference
    • DigitalRiver.js reference
      • Including DigitalRiver.js
      • Initializing DigitalRiver.js
      • DigitalRiver object
      • Elements
        • Amazon Pay element
        • Apple Pay elements
        • Google Pay elements
        • IBAN element
        • iDEAL element
        • Konbini elements
        • Compliance element
        • Offline Refund elements
        • Online Banking elements
        • Tax Identifier element
        • Invoice attribute element
        • Delayed Payment Instructions element
        • PayPal elements
      • Guidelines for capturing payment details
      • Security
      • Digital River payment objects
      • Error types, codes, and objects
    • DigitalRiverCheckout.js reference
      • Including DigitalRiverCheckout.js
      • Initializing DigitalRiverCheckout.js
        • DigitalRiverCheckout configuration object
      • DigitalRiverCheckout object
        • Configuring Prebuilt Checkout
          • Performing actions
          • Defining experience
        • Components
          • Configuring components
          • Address component
          • Shipping component
          • Tax identifier component
          • Invoice component
          • Wallet component
          • Payment component
          • Compliance component
          • Order summary component
          • Thank you component
        • Rendering a checkout button
          • Performing actions on the checkout button
        • Determining the checkout's status
      • Accessing country and currency
    • DynamicPricing.js reference
    • Postman collection
  • administration
    • Sign in
    • Digital River Dashboard
      • Digital River Dashboard quick start guide
      • Key features
      • Reset your password
      • Test and production environments
      • Account
        • Adding an account
        • Switching accounts
        • Account access
      • Profile settings
        • Viewing your personal information
        • Changing your password
        • Updating your phone number
        • Enabling multi-factor authentication
      • Finance
        • Payouts
          • Viewing your payout details
          • Filtering your payouts
          • Exporting your payouts
        • Sales summaries
          • Viewing your sales summaries details
          • Filtering your sales summaries
          • Exporting your sales summaries
          • Exporting your sales summary details
        • Transactions
          • Viewing your transaction details
          • Filtering your transactions
          • Exporting your transactions
      • Order management
        • Orders
          • Searching for orders
          • Filtering your orders
          • Viewing the order details
          • Cancelling items
          • Fulfilling items
          • Downloading an invoice
          • Downloading a credit memo
          • Creating shipping labels
          • Recording a customer's request to be forgotten
          • Viewing returns and refunds
          • Creating a return
          • Accepting a return
          • Creating a refund
          • Viewing the order's timeline
        • Checkouts
          • Searching for checkouts
          • Filtering your checkouts
          • Viewing the checkout details
        • Prebuilt Checkout links
          • Generate Prebuilt Checkout links
          • View and work with Prebuilt Checkout link details
          • Add a customer during Prebuilt Checkout
          • Add a product during Prebuilt Checkout
      • Customers
        • Viewing customer details
        • Searching for customers
        • Filtering your customers
        • Editing account information
        • Adding a customer
        • Tax IDs and certificates
          • Adding a tax certificate
          • Adding a tax ID
          • Deleting a tax ID
        • Metadata
          • Adding metadata
          • Editing metadata
        • Manage subscriptions from the Customer Details page
        • Disabling a customer
        • Recording a customer's request to be forgotten
        • Deleting a customer
      • Catalog
        • SKUs
          • Viewing the SKU details
          • Searching for SKUs
          • Filtering your SKUs
          • Adding a SKU
          • Editing a SKU
          • Deleting a SKU
          • Adding a fee to a SKU
          • Editing a fee
          • Deleting a fee
          • Viewing product tariff codes
        • Managing customer subscriptions from Digital River Dashboard
      • Developers
        • API keys
          • Updating your API version
          • Getting your API keys
          • Changing the API version for your key
          • Creating a restricted key
          • Editing a restricted key
          • Deleting a restricted key
          • Rotating keys
        • Webhooks
          • Creating a webhook
          • Editing a webhook
          • Deleting a webhook
          • Rotating a webhook's secret
        • API logs
          • Filtering the API log
          • Viewing the API log details
        • Event logs
          • Filtering the events log
          • Viewing the event details
      • Settings
        • Users and roles
          • Roles
          • Searching for a user by name or email
          • Filtering your users and roles
          • Adding a user
          • Editing a user
          • Deleting a user
        • Prebuilt Checkout
        • Payment methods
          • Viewing your payment methods
          • Viewing payment method details
            • Enabling currencies
            • Managing countries
          • Enabling or disabling a payment method
  • General Resources
    • eCompass
    • eCompass documentation
    • Release notes
      • 2024
      • 2023
      • 2022
      • 2021
      • 2020
      • 2019
    • Standards and certifications
      • Certification process
      • Compliance requirements
      • Documentation requirements
      • Integration checklists
        • Admin portal
        • Products and SKUs
        • Customers and tax exemptions
        • Checkouts, payment sources, and orders
        • Disclosures, compliance statements, and emails
        • Fulfillments and cancellations
        • Customer portal
        • Order refund synchronization
        • Reversals
        • Error handling
      • Test and use cases
    • Commerce infrastructure
    • Versioning
    • Glossary
Powered by GitBook
On this page
  • Sequencing address information in checkouts
  • Address requirements and validations
  • Email address requirements
  • Billing address requirements
  • Ship from requirements
  • Ship to requirements
  • Postal code and state/province validations
  • Ship from address
  • Specifying ship-from at the checkout-level
  • Specifying ship from at the item-level
  • Ship to address
  • Bill to address
  • Basic address information
  • Additional address information
  • Brazilian Neighborhoods
  • Japanese phonetics and divisions
  • State codes
  • US states and territories
  • Brazilian states
  • Canadian provinces and territories
  • Indian states
  1. Integration options
  2. Direct integrations
  3. Building checkouts

Providing address information

Learn how to provide billing, shipping and email address-related information.

PreviousManaging items with shared SKU identifiersNextHandling shipping choice

Last updated 2 months ago

You can use and to provide , , and address-related information. During , we use this information to select the correct , determine whether are applicable, , and .

Except in , we don't perform real-time address validation. Instead, we expect you to validate the customer's address before sending it to us.

When , you must carefully consider the . Fulfilling specific is essential before successfully .

Sequencing address information in checkouts

For that contain , we recommend you send a customer's and in the .

We suggest this sequencing because, the shipping address takes the highest priority in our tax computation process, followed by the billing address, and then, finally, the . If we generate a tax estimate based on the checkout's , and then update that estimate using a you provide in a request, you could receive the following error when you :

{
    "type": "bad_request",
    "errors": [
        {
            "code": "order_submit_failed",
            "message": "Payment session status is invalid."
        }
    ]
}

For transactions that contain only , we recommend that you first collect the customer's current billing information and use it to set the checkout's . In a subsequent , you can .

Since no is required for digital-only transactions, this sequence ensures accurate tax estimates and reduces the frequency of order failures. If you don't first send billTo, an outdated billing address on the may result in an inaccurate tax estimate when you attach the source to the checkout.

Address requirements and validations

Email address requirements

In both POST /checkouts and POST /checkouts/{id} requests, the first-class email parameter is technically optional.

curl --location --request POST 'https://api.digitalriver.com/checkouts' \
...
--header 'Authorization: Bearer <API_key>' \
...
--data-raw '{
    ...
    "email": "janedoe@digitalriver.com",
    "shipTo": {
        ...
    },
    "shipFrom": {
        ...
    },
    "items": [
        {
            ...
        }
    ],
    ...
}'
{
    "type": "bad_request",
    "errors": [
        {
            "code": "order_create_failed",
            "parameter": "email",
            "message": "The order could not be created because a required checkout parameter is missing. Update the checkout information provided before trying again."
        }
    ]
}

Billing address requirements

{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "billTo.address.country",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "conflict",
    "errors": [
        {
            "code": "create-order-failed",
            "message": "The order is missing required details and could not be completed."
        }
    ]
}

Ship from requirements

{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipFrom.address",
            "message": "A parameter is missing."
        }
    ]
}

Second, if your goods are shipping from the United States, then some additional shipFrom.address requirements must be met before Digital River’s tax service calculates the taxes.

Specifically, if country is US, then:

  • A postalCode is required and must, at a minimum, consist of five digits, all of which must be valid for a particular region or address in the United States. For example, a postalCode of 99999, because it doesn't map to any actual location, won’t result in a tax calculation getting returned.

  • A state is not required, but if you do define this parameter, then postalCode needs to be valid for that particular state. For example, if postalCode is 10001 and state is MN, our tax service won’t perform a calculation because the first digit of all zip codes in Minnesota is 5.

Ship to requirements

{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "address.line1",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipTo.address.country",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipTo.address.city",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipTo.address.state",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipTo.address.postalCode",
            "message": "A parameter is missing."
        }
    ]
}
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipping.name",
            "message": "A parameter is missing."
        }
    ]
}

Postal code and state/province validations

Checkout
{
    ...
    "shipTo": {
        "address": {
            ...
            "postalCode": "55104",
            "state": "MN",
            "country": "US"
        },
        ...
    },
    ...
    "billTo": {
        "address": {
            ...
            "postalCode": "EC1M 4AN",
            "country": "GB"
        },
        ...
    },
    ...
}

Postal code validations

With any of these countries, an improperly formatted ship to or bill to postalCode in a POST /checkouts or POST /checkouts/{id} returns the following error:

400 Bad Request
{
    "type": "bad_request",
    "errors": [
        {
            "code": "invalid_parameter",
            "parameter": "address.postalCode",
            "message": "A required address parameter, postal code, is invalid."
        }
    ]
}

States and province validations

400 Bad Request
{
    "type": "bad_request",
    "errors": [
        {
            "code": "invalid_parameter",
            "parameter": "address.state",
            "message": "A required address parameter, state/province, is invalid."
        }
    ]
}

For a list of acceptable state values, refer to:

Ship from address

Specifying ship-from at the checkout-level

Once the following POST /checkouts request is submitted, the second element in the items array will inherit the checkout-level shipFrom value.

curl --location --request POST 'https://api.digitalriver.com/checkouts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_key>' \
--data-raw '{
    ...
    "shipFrom": {
        "address": {
            "line1": "350 S 5th St",
            "city": "Minneapolis",
            "postalCode": "55415",
            "state": "MN",
            "country": "US"
        }
    },
    ...
    "items": [
        {
            "skuId": "bc4aab24-2880-4de7-b6b0-07dd6e6841a9",
            "price": 100.00,
            "quantity": 2,
            "shipFrom": {
                "address": {
                    "line1": "1800 Hiawatha Ave",
                    "city": "Minneapolis",
                    "postalCode": "55404",
                    "state": "MN",
                    "country": "US"
                }
            }
        },
        {
            "skuId": "bc4aab24-2880-4de7-b6b0-07dd6e6841a9",
            "price": 50.00,
            "quantity": 3
        }
    ]
}'
{
    "type": "bad_request",
    "errors": [
        {
            "code": "missing_parameter",
            "parameter": "shipFrom.address",
            "message": "A parameter is missing."
        }
    ]
}

Specifying ship from at the item-level

Additionally, any shipFrom values set at the item-level take priority over the checkout-level shipFrom.

Ship to address

The shipTo and shipping hash tables also contain other child parameters that allow you to send the customer's name, phone, email, and organization.

Bill to address

You can also use billTo to send non-address related information, such as the customer's name, phone, email, and organization.

Basic address information

An Address represents basic address information. The following table describes each parameter:

Parameter
Description

line1

The first line of the address

line2

The second line of the address.

postalCode

The postal code. For United States addresses, Digital River supports ZIP+4 codes. They consist of the last four digits of a full nine-digit ZIP code. A nine-digit ZIP Code has two parts: the initial five digits of the zip code indicating the destination post office or delivery area and the last four digits representing a specific delivery route within that overall delivery area.

city

The city of the address

state

country

Additional address information

Brazilian Neighborhoods

Brazilian addresses require a neighborhood for an order to be successfully created. The following example shows how to specify this value for an address in Brazil.

curl --location --request POST 'https://api.digitalriver.com/checkouts' \
--header 'Authorization: Bearer <API_key>' \
--header 'Content-Type: text/plain' \
--data-raw '{
    ...
    "shipTo": {
        "address": {
            "line1": "Av. Paulista, 1098, 1º andar",
            "line2": "apto. 101",
            "city": "São Paulo",
            "postalCode": "01310-000",
            "state": "SP",
            "country": "BR"
        },
        "name": "João Ribeiro",
        "phone": "98765-4321",
        "email": "jribeiro@acme.com",
        "additionalAddressInfo": {
            "neighborhood": "Bela Vista"
        }
    },
    ...
}'

Japanese phonetics and divisions

For Japanese addresses, customers can provide their division within their organization (for example, the sales department). Additionally, customers can enter their names in two scripting styles: Hiragana and Katakana. Hiragana is the traditional script, while Katakana is the phonetic spelling. Customer and courier services often want the phonetic spelling so they can correctly pronounce the customer's name when making a delivery. Katakana is also used by foreigners living in the country who don't have a Japanese name.

Use the phoneticName and division child attributes of additionalAddressInfo to provide this information:

curl https://api.digtalriver.com/customers
     -u sk_test_db9682a2-b04a-4e94-8e11-35fe8ec0b324: \
     -d currency=JPY \
     -d email="shopxTest@digitalriver.com" \
     -d items[0][skuId]=sku_9234276173 \
     -d items[0][price]=9.29 \
     -d items[0][quantity]=2 \
     -d shipTo[name]="山田 太郎" \
     -d shipTo[phone]="03-1234-1234" \
     -d shipTo[email]="shopxTest@digitalriver.com" \
     -d shipTo[address][line1]="新宿区新宿1-1-1" \
     -d shipTo[address][line2]="新宿ビル203" \
     -d shipTo[address][city]="田原市" \
     -d shipTo[address][postalCode]="123-1234" \
     -d shipTo[address][country]="JP" \
     -d shipTo[additionalAddressInfo][phoneticName]="ヤマダ タロ" \  
     -d shipTo[additionalAddressInfo][division]="営業部" \         
     -d shipTo[amount]="5.95" \
     -d shippingChoice[name]="USPS: Priority (1 day delivery)"

State codes

State codes in addresses are essential for identifying specific regions within a country. For example, a unique two-letter code represents each state, territory, and federal district in the United States. These codes are used in shipping, billing, and other applications to ensure precise and efficient data handling. Understanding and using these standardized codes helps avoid errors, streamline processes, and facilitate communication across different systems.

US states and territories

Code
State

AK

Alaska

AL

Alabama

AR

Arkansas

AZ

Arizona

CA

California

CO

Colorado

CT

Connecticut

DE

Delaware

FL

Florida

GA

Georgia

HI

Hawaii

IA

Iowa

ID

Idaho

IL

Illinois

IN

Indiana

KS

Kansas

KY

Kentucky

LA

Louisiana

MA

Massachusetts

MD

Maryland

ME

Maine

MI

Michigan

MN

Minnesota

MO

Missouri

MS

Mississippi

MT

Montana

NC

North Carolina

ND

North Dakota

NE

Nebraska

NH

New Hampshire

NJ

New Jersey

NM

New Mexico

NV

Nevada

NY

New York

OH

Ohio

OK

Oklahoma

OR

Oregon

PA

Pennsylvania

RI

Rhode Island

SD

South Dakota

SC

South Carolina

TN

Tennessee

TX

Texas

UT

Utah

VA

Virginia

VT

Vermont

WA

Washington

WI

Wisconsin

WV

West Virginia

WY

Wyoming

Code
Federal District

DC

District of Columbia

Code
Territory

AS

American Samoa

FM

Federated States Of Micronesia

GU

Guam

MH

Marshall Islands

MP

Northern Mariana Islands

PR

Puerto Rico

PW

Palau

VI

U.S. Virgin Islands

Code
APO/FPO Military Addresses

AE

Armed Forces

AP

Armed Forces Pacific

AA

Armed Forces America

Brazilian states

Code
State

AC

Acre

AL

Alagoas

AP

Amapá

AM

Amazonas

BA

Bahia

CE

Ceará

DF

Distrito Federal

ES

Espírito Santo

GO

Goiás

MA

Maranhão

MT

Mato Grosso

MS

Mato Grosso do Sul

MG

Minas Gerais

PR

Paraná

PB

Paraíba

PA

Pará

PE

Pernambuco

PI

Piauí

RN

Rio Grande do Norte

RS

Rio Grande do Sul

RJ

Rio de Janeiro

RO

Rondônia

RR

Roraima

SC

Santa Catarina

SE

Sergipe

SP

São Paulo

TO

Tocantins

Canadian provinces and territories

Code
Province

AB

Alberta

BC

British Columbia

MB

Manitoba

NB

New Brunswick

NL

Newfoundland and Labrador

NS

Nova Scotia

ON

Ontario

PE

Prince Edward Island

QC

Quebec

SK

Saskatchewan

Code
Territory

NT

Northwest Territories

NU

Nunavut

YT

Yukon

Indian states

Code
State

AN

Andaman and Nicobar Islands

AP

Andhra Pradesh

AR

Arunachal Pradesh

AS

Assam

BR

Bihar

CH

Chandigarh

CG

Chhattīsgarh

DH

Dadra and Nagar Haveli and Daman and Diu

DL

Delhi

GA

Goa

GJ

Gujarat

HR

Haryana

HP

Himachal Pradesh

JK

Jammu and Kashmir

JH

Jharkhand

KA

Karnataka

KL

Kerala

LA

Ladakh

LD

Lakshadweep

MP

Madhya Pradesh

MH

Maharashtra

MN

Manipur

ML

Meghalaya

MZ

Mizoram

NL

Nagaland

OD

Odisha

PY

Puducherry

PB

Punjab

RJ

Rajasthan

SK

Sikkim

TN

Tamil Nadu

TS

Telangana

TR

Tripura

UP

Uttar Pradesh

UK

Uttarakhand

WB

West Bengal

Every that you create . We also .

If a only contains , you're not required to provide either or . However, when that contains , you as well as .

Additionally, we in where products are being shipped or billed to specific countries.

In , unless you're using 2021-03-23 or earlier of the Digital River APIs, we do not use the associated email, shipping, and owner values to populate undefined email, shipTo, and billTo attributes in the .

However, when you , the checkout must contain a properly formatted email. If it doesn't, the POST /orders returns a 400 Bad Request:

Every needs to contain the customer's billing address. So, before you , its must be populated.

More specifically, the billTo must contain line1, city, country, postalCode, and name. If it doesn't, you will receive either a 400 Bad Request that identifies which parameter is missing or a 409 Conflict that contains a more general message.

If a contains a , you can fulfill its billTo requirements by passing the customer's billing address using the . If you set up your integration this way, we use the source's to set the checkout's billTo.

When you , the billing address information associated with the primary source takes higher priority.

If you only attach to a checkout, you have two options to meet our billing address requirements. You can specify owner in the . Or you can create the secondary source without owner and set the checkout's billTo. If you attach multiple secondary sources to a checkout, and each source contains owner, we use the last source attached to populate the checkout's billTo.

that contain must meet certain requirements.

First, they need to have a shipFrom.address.country. If you don't provide this data when and then , a 400 Bad Request is returned.

Checkouts that contain must have a name, line1, city, postalCode, and country in . This is true for all shipping destinations. Additionally, when physical goods are being shipped to destinations within the United States or Canada, you must provide a state.

When the , you should also set the shipTo.organization. This ensures that the company's name is displayed on .

In checkouts that contain , if any of the following values are missing, a or request returns a 400 Bad Request :

A missing name returns a similar 400 Bad Request when you .

When products are shipped and billed to certain countries, a checkout's and must contain and data that adheres to a standardized format.

Digital River uses the same address schemas the returned when performing these postal codes and state/province validations.

Digital River validates the format of postalCode using a regular expression. You can use the regular expressions to validate customer-submitted postal codes on your front-end before invoking , , createDropIn() or .

The same error is returned if you with an invalid postal code and then .

If the checkout's and/or country is either US (United States of America), BR (Brazil), CA (Canada), or IN (India) and state is not a 2-letter ISO state/province code value (see , , or ) or 2-letter province code (), then the following error is returned:

The checkout's shipFrom defines the address from which a physical product is shipped. It consists of child attributes address and additionalAddressInfo. Use address to provide on the shipment's origin and additionalAddressInfo to give us more .

The shipFrom parameter can be set at either the or the . This allows you to build an order containing items that ship from different addresses in different countries.

Your request, however, cannot contain a combination of shipFrom addresses that result in to the transaction.

The checkout-level shipFrom is mapped to any that but don't have a shipFrom value.

If you don't set the checkout-level shipFrom, and one or more physical line items don't specify a shipFrom, you can successfully create a checkout. In this case, though, returns the following 400 Bad Request:

By specifying shipFrom at the item-level, you can containing that ship from different countries. A shipFrom is not required at the line item-level unless no shipFrom is provided at the .

When an order contains , you're .

In , unless you're using version 2021-03-23 or earlier of the Digital River APIs, we do not use the associated shipping values to populate the shipTo.

You should use address to provide on the shipment's destination and additionalAddressInfo to give us more .

The billTo hash table contains child parameters address and additionalAddressInfo. You can use address to provide on the customer's billing address and additionalAddressInfo to give us more .

In most scenarios, the billTo parameter is optional. However, we enforce if you only apply to a transaction.

When , you can use billTo to obtain an accurate tax calculation before attaching a payment source to the checkout. This is especially useful in transactions that only contain . In these transactions, is typically not sent in the request. Therefore, Digital River needs billTo to generate a tax estimate.

Once you or , the response from the API includes billTo. This represents the billing address we used for tax computation purposes. Having this information allows you to know precisely what billing address information was used when calculating taxes. It also allows your integration to more easily retrieve any billing information that you might need to send in an email or other form of customer communications.

The , county, province, or region.

A two-letter as described in the international standard.

You can use the resource to retrieve for many countries. These schemas define the required address parameters and provide regular expressions to validate postal code formats.

Use additionalAddressInfo to capture any information that's not included in the basic address. This is especially useful for and .

In , use the following codes as the state values for the and addresses to represent states, territories, APO/FPO military addresses, and the District of Columbia. See for more information on US state codes.

In , use the following codes as the state values for the and addresses to represent Brazilian states and the federal district. See for more information on Brazilian state codes.

In , use the following codes as the state values for the and addresses to represent Canadian provinces and territories. See for more information on Canadian state codes.

In , use the following codes as the state values for the and addresses to represent Indian states. See for more information on Indian state codes.

ship to
bill to
postal code
state/province
ship to
bill to
United States and territories
Brazilian states
Indian states
see Canadian provinces and territories
US states and territories
Canadian provinces and territories
basic information
detailed information
checkout-level
item-level
basic information
detailed information
basic information
detailed information
Brazilian neighborhoods
Japanese phonetics and divisions
Alpha-2 country code
ISO 3166
state
selling entity
compute taxes
building checkouts
purchase location
ship from
ship to
bill to
certain scenarios
sending address information sequence
address-related requirements
shipping address
billing address
billTo
shipTo
billTo
ship to address
building a checkout
shipFrom
shipTo
must set the ship from country
certain ship to parameters
building a checkout
customer type is business
line items
CountrySpecs
ISO 3166:US
ship-to
bill-to
ISO 3166:BR
ship-to
bill-to
3166:CA
ship-to
bill-to
ISO 3166:IN
ship-to
bill-to
requires an email address
require the customer's billing information
validate the format of postal codes and states
billTo
shipFrom
shipTo
properly formatted
checkout-level
required to provide a customer's shipping information
billTo requirements
sequencing address information in your checkout workflows
ship-to information
convert that checkout to an order
convert that resource to an order
convert the checkout to an order
converting the checkout to an order
tax identifiers
converting a checkout to an order
convert the checkout to an order
convert a checkout to an order
tax invoices
convert a checkout to an order
owner
checkout
build checkouts
registered checkouts
registered checkouts
combine primary and secondary sources
secondary sources
secondary source creation method
create a source
associate that source with the checkout
secondary sources
attach the payment source to the checkout
primary payment source
default source's
primary source
primary source creation method
physical products
contain a physical product
physical products
physical products
digital products
address schemas
more than one selling entity being assigned
physical products
digital products
customers
checkouts
screen for fraud
checkouts
create checkout request
POST /checkouts/{id}
update checkout request
order
digital products
physical products
checkout
checkouts
order
checkout's
checkout
physical products
Checkouts
checkout's
Country Specs API
customer's
checkout's
create an invoice
checkouts
checkouts
checkouts
checkouts
POST /checkouts
POST /checkouts/{id}
createSource()
physical products
create
update checkout
customer's
checkout
version