autogen-stedi 0.3.2

Auto-generated, strongly-typed Rust client for the Stedi APIs
Documentation
/*
 * Stedi Healthcare
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2024-04-01
 * Contact: healthcare@stedi.com
 * Generated by: https://openapi-generator.tech
 */

use crate::healthcare::models;
use serde::{Deserialize, Serialize};

/// Billing : Information about the billing provider. - You must provide an `address` that is a physical location such as the office where care is delivered or an administrative facility. - For tax identification, you must include either the provider's Social Security Number (SSN) in the `ssn` property _or_ their Employer Identification Number (EIN) in the `employerId` property, but not both. - If the billing provider has an NPI, you must include it in the `npi` property. If the billing provider does not have an NPI, you must include either the `commercialNumber` or the `locationNumber` for identification. Some payers may require the `npi` **and** either the `commercialNumber` or the `locationNumber` as a secondary identifier. - Some solo providers may use their SSN as their EIN. In this case, submit the SSN in the `ssn` property and leave the `employerId` property blank.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Billing {
    /// The billing provider's address. This is **required** and must be a physical location such as the office where care is delivered or an administrative facility. If the billing provider expects to receive paper checks at a PO Box, lockbox, or other non-physical address, provide that in `payToAddress`.
    #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
    pub address: Option<Box<models::ClaimsAddress>>,
    /// Claim Office Number.
    #[serde(rename = "claimOfficeNumber", skip_serializing_if = "Option::is_none")]
    pub claim_office_number: Option<String>,
    /// The billing provider's commercial number, as assigned by this payer. The commercial number is a unique identifier that the payer assigns to the provider. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification.
    #[serde(rename = "commercialNumber", skip_serializing_if = "Option::is_none")]
    pub commercial_number: Option<String>,
    /// Contact information for the billing provider. You can include a maximum of two objects in this array.
    #[serde(rename = "contactInformation", skip_serializing_if = "Option::is_none")]
    pub contact_information: Option<Box<models::ClaimsContactInformation>>,
    /// The billing provider's Employer Identification Number (EIN). Typically a string of exactly nine numbers with no separators, unless otherwise instructed by the payer. If you include this value, you cannot include the `ssn`.
    #[serde(rename = "employerId", skip_serializing_if = "Option::is_none")]
    pub employer_id: Option<String>,
    /// The billing provider's first name, if the provider is an individual.
    #[serde(rename = "firstName", skip_serializing_if = "Option::is_none")]
    pub first_name: Option<String>,
    /// The provider's last name, if the provider is an individual.
    #[serde(rename = "lastName", skip_serializing_if = "Option::is_none")]
    pub last_name: Option<String>,
    /// The billing provider's location number. For providers without an NPI, you must provide either the `commercialNumber` or the `locationNumber` for identification.
    #[serde(rename = "locationNumber", skip_serializing_if = "Option::is_none")]
    pub location_number: Option<String>,
    /// The provider's middle name or initial, if the provider is an individual.
    #[serde(rename = "middleName", skip_serializing_if = "Option::is_none")]
    pub middle_name: Option<String>,
    /// National Association of Insurance Commissioners (NAIC) Code.
    #[serde(rename = "naic", skip_serializing_if = "Option::is_none")]
    pub naic: Option<String>,
    /// The billing provider's [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier). Optional. When the billing provider is not assigned an NPI, supply `commercialNumber` or `locationNumber` instead.
    #[serde(rename = "npi", skip_serializing_if = "Option::is_none")]
    pub npi: Option<String>,
    /// The provider's business name.
    #[serde(rename = "organizationName", skip_serializing_if = "Option::is_none")]
    pub organization_name: Option<String>,
    /// Payer Identification Number.
    #[serde(rename = "payerIdentificationNumber", skip_serializing_if = "Option::is_none")]
    pub payer_identification_number: Option<String>,
    /// This field is now automatically populated and it only remains for backwards compatibility.
    #[serde(rename = "providerType", skip_serializing_if = "Option::is_none")]
    pub provider_type: Option<String>,
    /// Deprecated; do not use.
    #[serde(rename = "providerUpinNumber", skip_serializing_if = "Option::is_none")]
    pub provider_upin_number: Option<String>,
    /// The billing provider's Social Security Number. Must be a string of exactly nine numbers with no separators. If you include this value, you cannot include the `employerId`.
    #[serde(rename = "ssn", skip_serializing_if = "Option::is_none")]
    pub ssn: Option<String>,
    /// The billing provider's state license number. This is assigned directly by a payer in order to identify the provider in their system. This is not commonly used.
    #[serde(rename = "stateLicenseNumber", skip_serializing_if = "Option::is_none")]
    pub state_license_number: Option<String>,
    /// The provider's name suffix, such as Jr. or III.
    #[serde(rename = "suffix", skip_serializing_if = "Option::is_none")]
    pub suffix: Option<String>,
    /// Code from the National Uniform Claims Committee [Health Care Provider Taxonomy Code Set](https://taxonomy.nucc.org/). This identifies the billing provider's type and/or area of specialty.
    #[serde(rename = "taxonomyCode", skip_serializing_if = "Option::is_none")]
    pub taxonomy_code: Option<String>,
}

impl Billing {
    /// Information about the billing provider. - You must provide an `address` that is a physical location such as the office where care is delivered or an administrative facility. - For tax identification, you must include either the provider's Social Security Number (SSN) in the `ssn` property _or_ their Employer Identification Number (EIN) in the `employerId` property, but not both. - If the billing provider has an NPI, you must include it in the `npi` property. If the billing provider does not have an NPI, you must include either the `commercialNumber` or the `locationNumber` for identification. Some payers may require the `npi` **and** either the `commercialNumber` or the `locationNumber` as a secondary identifier. - Some solo providers may use their SSN as their EIN. In this case, submit the SSN in the `ssn` property and leave the `employerId` property blank.
    pub fn new() -> Billing {
        Billing {
            address: None,
            claim_office_number: None,
            commercial_number: None,
            contact_information: None,
            employer_id: None,
            first_name: None,
            last_name: None,
            location_number: None,
            middle_name: None,
            naic: None,
            npi: None,
            organization_name: None,
            payer_identification_number: None,
            provider_type: None,
            provider_upin_number: None,
            ssn: None,
            state_license_number: None,
            suffix: None,
            taxonomy_code: None,
        }
    }
}