// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[JavaPackage="org.chromium.payments.mojom"]
module payments.mojom;
// The shipping address that the browser process provides to the renderer
// process. Built either by the browser or a payment app.
struct PaymentAddress {
// ISO 3166 country code. Two upper case ASCII letters.
string country;
array<string> address_line;
string region;
string city;
string dependent_locality;
string postal_code;
string sorting_code;
string organization;
string recipient;
string phone;
};
// The currency amount that the renderer provides to the browser process. The
// browser shows the amount in UI and forwards it on to the payment app, if it
// requires the amount.
[Stable]
struct PaymentCurrencyAmount {
// The most common identifiers are three-letter alphabetic codes as defined
// by [ISO4217] (for example, "USD" for US Dollars), however any string of at
// most 2048 characters is considered valid.
string currency;
// ISO 20022 CurrencyAnd30Amount. Up to 30 total digits. Up to 10 fraction
// digits. Separated by a dot.
string value;
};
// The |PaymentValidationErrors| data structure that the renderer provides to
// the browser process when calling retry() method in JavaScript. It contains
// merchant-defined error message strings.
struct PaymentValidationErrors {
string error;
PayerErrors payer;
AddressErrors shipping_address;
};
// The |PayerErrors| is used to represent validation errors with one or
// more payer details.
struct PayerErrors {
string email;
string name;
string phone;
};
// The |AddressErrors| is used to represent validation errors with specific
// parts of a physical address.
struct AddressErrors {
string address_line;
string city;
string country;
string dependent_locality;
string organization;
string phone;
string postal_code;
string recipient;
string region;
string sorting_code;
};