An Address belongs to a Customer. It can be associated to a CreditCard as the billing address. It can also be used as the shipping address when creating a Transaction.
 public function testCreateSignature()
 {
     $expected = ['billingAddressId', 'cardholderName', 'cvv', 'deviceData', 'expirationDate', 'expirationMonth', 'expirationYear', 'number', 'paymentMethodNonce', 'token', ['options' => ['failOnDuplicatePaymentMethod', 'makeDefault', 'verificationMerchantAccountId', 'verifyCard']], ['billingAddress' => Braintree\AddressGateway::createSignature()], 'customerId'];
     $this->assertEquals($expected, Braintree\PaymentMethodGateway::createSignature());
 }
 public static function updateSignature()
 {
     $billingAddressSignature = AddressGateway::updateSignature();
     array_push($billingAddressSignature, ['options' => ['updateExisting']]);
     $signature = array_merge(self::baseSignature(), ['deviceSessionId', 'venmoSdkPaymentMethodCode', 'fraudMerchantId', ['billingAddress' => $billingAddressSignature]]);
     return $signature;
 }