/// <summary>
        /// Get counterparty addresses. Represents 'getCounterpartyAddresses' method of 'Counterparty' model.
        /// Documentation: https://devcenter.novaposhta.ua/docs/services/557eb8c8a0fe4f02fc455b2d/operations/557fdcb4a0fe4f105c087611
        /// </summary>
        /// <param name="reference">Counterparty reference key</param>
        /// <param name="counterpartyProperty">Couterparty type like Sender or Recipient</param>
        /// <returns>Array of counterparty addresses</returns>
        public virtual IResponseEnvelope <GetCounterpartyAddressesResponse.CounterpartyAddress> GetCounterpartyAddresses(Guid reference, string counterpartyProperty)
        {
            var request = new GetCounterpartyAddressesRequest()
            {
                Reference            = reference,
                CounterpartyProperty = counterpartyProperty
            };

            return(GetCounterpartyAddresses(request));
        }
        /// <summary>
        /// Get counterparty addresses. Represents 'getCounterpartyAddresses' method of 'Counterparty' model.
        /// Documentation: https://devcenter.novaposhta.ua/docs/services/557eb8c8a0fe4f02fc455b2d/operations/557fdcb4a0fe4f105c087611
        /// </summary>
        /// <param name="getCounterpartyAddressesRequest">Get counterparty addresses request</param>
        /// <returns>Array of counterparty addresses</returns>
        public virtual IResponseEnvelope <GetCounterpartyAddressesResponse.CounterpartyAddress> GetCounterpartyAddresses(GetCounterpartyAddressesRequest getCounterpartyAddressesRequest)
        {
            var request = new RequestEnvelope <GetCounterpartyAddressesRequest>(getCounterpartyAddressesRequest)
            {
                CalledMethod = "getCounterpartyAddresses",
                ModelName    = MODEL
            };

            var response = _novaPoshtaGateway.CreateRequest <GetCounterpartyAddressesRequest, GetCounterpartyAddressesResponse>(request);

            return(response);
        }