chromium/components/payments/mojom/payment_request_data.mojom

// 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;
};