diff --git a/bin/masspay.py b/bin/masspay.py
index 06a01649e9..b7ea3bd856 100755
--- a/bin/masspay.py
+++ b/bin/masspay.py
@@ -1,21 +1,9 @@
#!/usr/bin/env python
"""This is a script for managing MassPay each week.
-Most of our payouts are handled by Balanced, but they're limited to people in
-the U.S. We need to payout to people outside the U.S. (#126), and while we work
-on a long-term solution, we are using PayPal. However, we've grown past the
-point that PayPal's Instant Transfer feature is workable. This script is for
-interfacing with PayPal's MassPay feature.
+See documentation here:
-This script provides for:
-
- 1. Computing an input CSV by hitting the Gratipay database directly.
- 2. Computing two output CSVs (one to upload to PayPal, the second to use for POSTing
- the exchanges back to Gratipay)
- 3. POSTing the exchanges back to Gratipay via the HTTP API.
-
-The idea is that you run steps 1 and 2, then run through the MassPay UI on the
-PayPal website using the appropriate CSV from step 2, then run step 3.
+ http://inside.gratipay.com/howto/run-masspay
"""
from __future__ import absolute_import, division, print_function, unicode_literals
diff --git a/gratipay/billing/exchanges.py b/gratipay/billing/exchanges.py
index 0b2ed6856d..cba53fd7a5 100644
--- a/gratipay/billing/exchanges.py
+++ b/gratipay/billing/exchanges.py
@@ -185,6 +185,8 @@ def get_ready_payout_routes_by_network(db, network):
FROM participants p
JOIN current_exchange_routes r ON p.id = r.participant
WHERE p.balance > 0
+ AND p.claimed_time is not null
+ AND p.is_suspicious is not true
AND r.network = %s
AND (
@@ -198,12 +200,21 @@ def get_ready_payout_routes_by_network(db, network):
) > 0
- OR -- Include green-lit Gratipay 1.0 balances
+ OR -- Include team members
+
+ (SELECT count(*)
+ FROM takes
+ JOIN teams t ON takes.team_id = t.id
+ WHERE takes.participant_id = p.id
+ AND p.has_verified_identity -- XXX apply this to *everyone* we pay out to
+ AND t.is_approved IS TRUE
+ AND t.is_closed IS NOT TRUE
+ ) > 0
- p.status_of_1_0_payout='pending-payout'
+ OR -- Include green-lit Gratipay 1.0 balances
- ----- TODO: Include team members once process_takes is implemented
+ p.status_of_1_0_payout='pending-payout'
)
""", (network,))
diff --git a/gratipay/billing/payday.py b/gratipay/billing/payday.py
index f7f737bc9c..f67f9b81f5 100644
--- a/gratipay/billing/payday.py
+++ b/gratipay/billing/payday.py
@@ -72,8 +72,8 @@ class Payday(object):
prepare
create_card_holds
process_payment_instructions
- transfer_takes
- process_draws
+ process_takes
+ process_remainder
settle_card_holds
update_balances
take_over_balances
@@ -153,8 +153,8 @@ def payin(self):
self.prepare(cursor)
holds = self.create_card_holds(cursor)
self.process_payment_instructions(cursor)
- self.transfer_takes(cursor, self.ts_start)
- self.process_draws(cursor)
+ self.process_takes(cursor, self.ts_start)
+ self.process_remainder(cursor)
_payments_for_debugging = cursor.all("""
SELECT * FROM payments WHERE "timestamp" > %s
""", (self.ts_start,))
@@ -261,37 +261,41 @@ def process_payment_instructions(cursor):
@staticmethod
- def transfer_takes(cursor, ts_start):
- return # XXX Bring me back!
+ def process_takes(cursor, ts_start):
+ log("Processing takes.")
cursor.run("""
+ UPDATE payday_teams SET available_today = LEAST(available, balance);
+
INSERT INTO payday_takes
- SELECT team, member, amount
- FROM ( SELECT DISTINCT ON (team, member)
- team, member, amount, ctime
- FROM takes
- WHERE mtime < %(ts_start)s
- ORDER BY team, member, mtime DESC
- ) t
- WHERE t.amount > 0
- AND t.team IN (SELECT username FROM payday_participants)
- AND t.member IN (SELECT username FROM payday_participants)
- AND ( SELECT id
- FROM payday_transfers_done t2
- WHERE t.team = t2.tipper
- AND t.member = t2.tippee
- AND context = 'take'
- ) IS NULL
- ORDER BY t.team, t.ctime DESC;
+ SELECT team_id, participant_id, amount
+ FROM ( SELECT DISTINCT ON (team_id, participant_id)
+ team_id, participant_id, amount, ctime
+ FROM takes
+ WHERE mtime < %(ts_start)s
+ ORDER BY team_id, participant_id, mtime DESC
+ ) t
+ WHERE t.amount > 0
+ AND t.team_id IN (SELECT id FROM payday_teams)
+ AND t.participant_id IN (SELECT id FROM payday_participants)
+ AND ( SELECT ppd.id
+ FROM payday_payments_done ppd
+ JOIN participants ON participants.id = t.participant_id
+ JOIN teams ON teams.id = t.team_id
+ WHERE participants.username = ppd.participant
+ AND teams.slug = ppd.team
+ AND direction = 'to-participant'
+ ) IS NULL
+ ORDER BY t.team_id, t.amount ASC;
""", dict(ts_start=ts_start))
@staticmethod
- def process_draws(cursor):
- """Send whatever remains after payouts to the team owner.
+ def process_remainder(cursor):
+ """Send whatever remains after processing takes to the team owner.
"""
- log("Processing draws.")
+ log("Processing remainder.")
cursor.run("UPDATE payday_teams SET is_drained=true;")
diff --git a/gratipay/models/team/mixins/takes.py b/gratipay/models/team/mixins/takes.py
index a7d2f558d3..7357ea8e2e 100644
--- a/gratipay/models/team/mixins/takes.py
+++ b/gratipay/models/team/mixins/takes.py
@@ -82,10 +82,15 @@ def vet(p):
vet(participant)
vet(recorder)
- if recorder.username == self.owner:
- if take not in (ZERO, PENNY):
+ owner_recording = recorder.username == self.owner
+ owner_taking = participant.username == self.owner
+ taker_recording = recorder == participant
+ adding_or_removing = take in (ZERO, PENNY)
+
+ if owner_recording:
+ if not adding_or_removing and not owner_taking:
raise NotAllowed("owner can only add and remove members, not otherwise set takes")
- elif recorder != participant:
+ elif not taker_recording:
raise NotAllowed("can only set own take")
with self.db.get_cursor(cursor) as cursor:
diff --git a/gratipay/testing/billing.py b/gratipay/testing/billing.py
index 0fce8a769d..e4e9ea65d8 100644
--- a/gratipay/testing/billing.py
+++ b/gratipay/testing/billing.py
@@ -32,8 +32,8 @@ def setUp(self):
braintree_customer_id=self.obama_bt_id)
self.obama_route = ExchangeRoute.insert(self.obama, 'braintree-cc', self.obama_cc_token)
# A customer with Paypal attached.
- self.homer = self.make_participant('homer', is_suspicious=False,
- claimed_time='now')
+ self.homer = self.make_participant('homer', is_suspicious=False, verified_in='US',
+ claimed_time='now', email_address='abcd@gmail.com')
self.homer_route = ExchangeRoute.insert(self.homer, 'paypal', 'abcd@gmail.com')
diff --git a/sql/payday.sql b/sql/payday.sql
index 38fee52285..4310c2b354 100644
--- a/sql/payday.sql
+++ b/sql/payday.sql
@@ -29,7 +29,9 @@ CREATE TABLE payday_teams AS
SELECT t.id
, slug
, owner
+ , available -- The maximum amount that can be distributed to members (ever)
, 0::numeric(35, 2) AS balance
+ , 0::numeric(35, 2) AS available_today -- The max that can be distributed this payday
, false AS is_drained
FROM teams t
JOIN participants p
@@ -86,9 +88,9 @@ UPDATE payday_participants pp
DROP TABLE IF EXISTS payday_takes;
CREATE TABLE payday_takes
-( team text
-, member text
-, amount numeric(35,2)
+( team_id bigint
+, participant_id bigint
+, amount numeric(35,2)
);
DROP TABLE IF EXISTS payday_payments;
@@ -204,24 +206,27 @@ CREATE TRIGGER process_payment_instruction BEFORE UPDATE OF is_funded ON payday_
WHEN (NEW.is_funded IS true AND OLD.is_funded IS NOT true)
EXECUTE PROCEDURE process_payment_instruction();
+
-- Create a trigger to process takes
CREATE OR REPLACE FUNCTION process_take() RETURNS trigger AS $$
DECLARE
- actual_amount numeric(35,2);
- team_balance numeric(35,2);
+ amount numeric(35,2);
+ available_today_ numeric(35,2);
BEGIN
- team_balance := (
- SELECT new_balance
- FROM payday_participants
- WHERE username = NEW.team
- );
- IF (team_balance <= 0) THEN RETURN NULL; END IF;
- actual_amount := NEW.amount;
- IF (team_balance < NEW.amount) THEN
- actual_amount := team_balance;
+ amount := NEW.amount;
+ available_today_ := (SELECT available_today FROM payday_teams WHERE id = NEW.team_id);
+
+ IF amount > available_today_ THEN
+ amount := available_today_;
+ END IF;
+
+ IF amount > 0 THEN
+ UPDATE payday_teams
+ SET available_today = (available_today - amount)
+ WHERE id = NEW.team_id;
+ EXECUTE pay(NEW.participant_id, NEW.team_id, amount, 'to-participant');
END IF;
- EXECUTE transfer(NEW.team, NEW.member, actual_amount, 'take');
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
diff --git a/tests/py/fixtures/TestCardHolds.yml b/tests/py/fixtures/TestCardHolds.yml
deleted file mode 100644
index 04f7939700..0000000000
--- a/tests/py/fixtures/TestCardHolds.yml
+++ /dev/null
@@ -1,925 +0,0 @@
-interactions:
-- request:
- body: !!python/unicode 'bkhpqm20.9111443524salefalse2'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAHTak1UAA9xXS2/bOBC+91cEvjOybCdxCkVBgcUCe+he+kCxl4IixxZjiVRJyrHz63coSrIU
- UWn3sMBib9LMR3JenPmYPJ7K4uoI2gglHxbx9XJxBZIpLuT+YfHl8+9ku3hM3yVWU2kos4hK311d
- JYKnfP/Cq00S4aeTGEttbVJa21xp8QI8iVqR09pzBamhBSRR8+lkrNYazzoTYRTBIyH98um3JJqK
- HZiWqpY2XS2v7+Mkav+cogTNciotoYw5IUF7jM3uD5u7l5fsaaVvb56SKIRyq5XmoPHnSoriYWF1
- DYvIG6eBWuCE2itn8MOC468VJSzQhviGLO/IMv4cr97Hd+9vbv9Cs/sFzfq64v9s/WVBGxxjFVrt
- fny843izWd+s+oijdCe0sUTSEl7bj8qCzuuYKisqzwENlFQUAfkzZEbY0F5VrmRIvqOnSVSjoVtJ
- JooC6+zi4ub533XOWA2ANcC5BmNC3p8sSO6yMAspFKOFsKHtNezxfoRCpPAqFL6Y7zfx8i6JhqLO
- bKxLfZ73yqvdCkKLKqerX0Ktf4aSNeZDsGmuBulB13a15KGL0mtMW+hUa3oeKTGeg/4R2sSAtQWU
- gBczo5blQUwuqmpYLqGa+1/WzBsZ/M8UyzA7bfMiOwEFN50/VFvBREV9813hFRhLBv1hsDKhR0NA
- a6UJBrdS0kAwJg1uELMxOv2IM+NNQLfFON2vQH/4Xd7ENP4fj9OVU6GD7rHpP9Mzap7AXw+cI2Za
- EUmlFcPTMA7diKUNvNnp9uvHb1sX0rdA413GpsTL5XK4fGpoQGex9NMPFWqObtzPIZrQci6cJRj8
- KWzi61EJ5hK0w8TjCiy6DPQ0IrWb6XiKH+IzKEtPxNOFoApOUFbdjM6UKoDKRbqjhXFUpQd0nAC9
- IIzqbkZZdQCZZoe8+lEivPnzmkzIdLOMV9uta6Ry2II2abzdIolpf9pbhpuShhp9FYZitfT/XZep
- hPbJLJW0eRpjuifCCfYMVCPhWC1H4EbantsOZOJ6VEPvvny6jOmL9GJlroom3OHOI0q6B1LrIs2t
- rcz7KKIGu7u5zjQV0l2ctuKvseViCzi7pv+9BKxW/r1QexUd0f/rSu4fQR6FVtIBHgyVPFMnpAf9
- /v68WoofNbTJxzaCYIHdQ6ebNdtu4h1nbM3Wu9vb9e3NDm7i5ZrBFjKGaZld2jYsDRXFvvSncqXt
- v70mB1rYHGOBjFUepHqWSTSQeRCHTNiL3v+2qlpjSWB97+vCcb4B6rWmn06OwApaXKADWddgz1oV
- A0QnaBNjTI39GeerPFwwI+m436sdcVoqmSPmH9yJU0UXKsVr1nTxy+kXmQcdQZaKGH6YuWy9vp0E
- 48vWvi9ILrAy9XnENfpJ3SAAN2oj7W4oUm5UlNUv0vAe3+/w5sOmQcy9TXyBGqworXJhK1oXB7y1
- jaS3b0CMjMKOBimtBNoxlXsvo9du9pI2NL43FjRMtOrMMC2qWSI20PedrKGBpMLBrzhBrkNcEAN3
- /xUSzdI2iEWTX53jBgTBWRDgkFyYpvKCOvC7qO7SznSluTcK9pGpbeNNkaG5Fyn6NVO3vd7PCHxl
- Spjuijk/uqG2A5gbR+5Y9Ux8NidaDENWa+NJMgeLz7SOWo1V4dwMGHb4+DFm8gj/RTicXACwQ+uw
- Ge45gJWK7C60Yc1YgEBjRmZ8d55XtYVQabSjhQiJdK1uPptx6vvKd9dXkmgONCY8A0fHvGjIeWZB
- P9+rYUk/26unUjbHIUrwerm6AzR9p8YRGzWP9N3fAAAA//8DAGbAiFvjEQAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"94ec61fecdef62415a9b56bf77b0d630"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: 10.0
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/dgzdp4/submit_for_settlement
- response:
- body:
- string: !!binary |
- H4sIAHXak1UAA9xYS2/jNhC+768IfGck2U7iLBQtFigK9LC97ANFLwFFjSyuJVJLUo6dX9+hKMlS
- RGUDFC2K3qyZj+S8+M3Q8YdTVV4dQWkuxcMqug5XVyCYzLjYP6y+fvmV7FYfknexUVRoygyikndX
- VzHPkmz/nNXbOMCfVqINNY1OdJNW3BjIHnOpHjUYU0IFwsRBB7BYc64h0bSEOGh/WhlrlMKTz4Rr
- SdAASL5+/iUO5mILppVshEmi8DoM46D7sooKFCuoMIQyZoUErdMmvT9s756f0+9rdXvzPQ58KLta
- qgwUflwJXj6sjGpgFTjjFFD0iVBzZQ1+WGX4aXgFq2QdRjckvCNh9CVav4/u3t/c/olmDwva9U2d
- vX39Ha6/LOiCo41Eq+2Hi34Ubbebm/UQf5TmXGlDBK3gpf2oLOmyjsmqpuLs0UBFeemRP0GqufHt
- VRdS+OQ5Pc2iGozdilNellh1Fxe3T/+sc9ooAKyBLFOgtc/7kwGR2SwsQkrJaMmNb3sFe7wtvhBJ
- vAqlK+b7bRTexcFY1JuNdanOy145tV1BaFkXdP0m1OZnKNFgPjib52qUHnQtb0TmuyiDRneFTpWi
- 54kS4zliE98mF9YgKTWs8GIKXtfjcvHV3P+yZl7J4H+mWMbZ6ciL5BzKTPf+UGU44zV15LvGKzCV
- jPhhtDKmR01AKakIBreWQoM3Ji1uFLMpOvmEPeNVQL/FNN0vQL+5XV7FtP4fj/OVc6GF7pH0n+gZ
- Nd/BXQ/sI3peEXGtJMPTMA60MYVU/Jm28Han22+f/tjZkL4Gmu4yNSUKbVtd0i6sNFj6yccaNUfI
- vKtbRBvaLOPWEgz+HDbz9Sg5swnKMfG4AosuBTWPSGN7Op7imvgCytATceOCVwUnqOq+R6dSlkDF
- Kslpqe2oMgD6mQC9IIyqvkcZeQCRpIei/lEhvP1ympSLZBtG693OEqkYU9A2iXa7KA66j+6W4aak
- HY2+cU2xWobvnmVqrlwyKylMkUSY7plwhj0DVThwrMMJuJV253YNmViOaoe9r58vbfoivVhZyLIN
- t595eEX3QBpVJoUxtX4fBFQju+vrVFEu7MXpKv4aKRcp4GxJ/7ECrNbssZR7GRzR/+ta7D+AOHIl
- hQU8aCqyVJ5wPBj2d+c1gv9ooEs+0giCObKHSrYbtttGecbYhm3y29vN7U0ON1G4YbCDlGFaFpd2
- hKWgpshLv0tb2u630xRAS1NgLHBiFQchn0QcjGQOlEHKzUXvPjtVo7AksL73TWlnvhHqpWboTnaA
- 5bS8QEeynmDPSpYjRC/oEqN1g/yM/VUcLpiJdMr3MidWSwWzg/lHe+Jc0YdKZg1rWfxy+kXmQEcQ
- lSQ6OyxctkHfdYLpZeteG6TgWJnqPJk1hk7dIgA36iJtbyiO3Kio6jeO8QN+2KF7xfSEapnu8rBp
- Ed1rZB1e30fjt4krUI0VpWTBTU2b8oC3tpUM9o0GIy2R0SChNUc75nLnZTB38+97fvea52954I3j
- MHuj/TtxGCRdibgeUVL/wNmkmileLw6kI/3A6O04TGocgGRGcOYjNqQeDnyBRLOU8WLR5Bfn2EZJ
- sCd6ZumM6/YGenXgdpE9eS2w89JbDfl0btt0U5xU7csc/Vq4v4Pe9Up8bQuY74o5P9rmngMstWV7
- rHwiLpszLYYhbZR2j4UMDD5X+xFzqvLnZvTS8B8/xcz+jHgjHE42ANiplN8M+yzCSsUp17dhw5jn
- IYEZWfDdel43Bnyl0bVYwgWOrU37sx0rHL8+Wn6NgyXQdPAbOTqdD8ez3yLo53u10+LP9hpGSlPg
- MEHwetm6AzQ9l9OITcgjefcXAAAA//8DAIkuCK75EgAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"caa8dd66103e4cb01445503b16fb269c"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode 'bkhpqm20.9111443524salefalse2'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAHfak1UAA9xXT2+rOBC/v08R5e4SkrRNK0r1pNVKe9jVSu91D3upjJkEN2BT26RJP/2OMRAI
- pu1lpdXeYObn8fyfcfR4LPLZAZTmUjzMw6vFfAaCyZSL3cP86eevZDN/jL9FRlGhKTOIir/NZhFP
- 45f0Zve6iQL8tBRtqKl0TCuTScXfIY2ChmS55lRCrGkOUVB/WhqrlMK7ToRrSfBKiJ9+/BIFY7IF
- 00JWwsTLxdVdGAXNn2UUoFhGhSGUMUskqI82yd1+ffv+nrws1c31SxT4UPa0VCko/JkJnj/Mjapg
- HjjlFFADKaFmZhV+mKf4a3gBc9QhvCaLW7IIf4bL+/D2/nrzN6rdHajPV2X69fN3eP58oHGONhK1
- tj/O32G4Xq+ul+vW40jdcqUNEbSAS/2RmdNpHpNFScXJw4GC8txDf4NEc+OTVWZS+Ohbehx5Neib
- FSU8zzHPziau3/5d47RRAJgDaapAa5/1RwMitVGYhOSS0Zwbn3gFO6wPn4sklkLukvluHS5uo6BP
- atXGvFSnaasc254gNC8zuvwSavUZSlQYD87GseqFB03bViL1FUrH0U2iU6XoacBEf/b6h0+IBmNy
- KAALM6GGZV5Mxsuyny6+nPtf5swHEfzPJEs/Ok3zIlsOeapbe6gynPGSuua7xBIYUnr9oXcyogdN
- QCmpCDq3lEKD1yc1ruezITr+HWfGh4BWxDDcF6DfnJQPMbX9h8P45JhooTts+m/0hJwXcOWBc0SP
- MyIqlWR4G/qhHbG0hjvzwsXqTxwiH4KGUoaqhIvFon98rKiHZzD14+8lcg523E8hatemKbeaoPPH
- sJGtB8mZDdAWA48nMOkSUGOPVHam4y1uiE+gDD0Sty54WXCEomxndCJlDlTM4y3NtV1VOkC7E6AV
- hFHVzigj9yDiZJ+VrwXC6z/HSbiI14twudnYRir6LWgdh5sNLjHNT1NlKJTUq9FfXFPMlu6/7TIl
- Vy6YhRQmi0OsoBFxhD0BVbhwLBcDcE1t7m0GMrE9ql7vnn6cx/SZetYyk3ntbn/n4QXdAalUHmfG
- lPo+CKjG7q6vEkW5sIXTZPwVtlxsASfb9J8LwGxNn3O5k8EB7b8qxe4RxIErKSzgQVORJvKI60En
- 391XCf5aQRN8bCMI5tg9VLxesc063KaMrdhqe3OzurnewjXWCYMNJAzDMnm0aVgKSop96Q9pU9t9
- O04GNDcZ+gI3VrEX8k1EQY/mQCkk3Jz57rdhVQpTAvN7V+V25+uhLjnddLILLKf5GdqjtQ32pGTe
- Q7SEJjBaV9ifcb6K/RkzoA77vdwSy6WC2cX8u71xzGhdJdOK1V38fPuZ5kAHEIUkOt1PFFvHbybB
- sNia9wXJOGamOg12jW5S1whAQY2nbYXiyo2MovziGt7hOwkfPmxqxNTbxCWoxoxSMuOmpFW+x6qt
- KZ1+vcVIS+xoENOSox5jurMyuDSzozSucb0xp/5Fq0o0U7ycXMR6/K6T1WsgKXHwy5TgrkOsEz21
- f4FEtZTxYlHli3vsgCA4Czw7ZMp1nXleHjgpsi3aia409UbBPjLWbSgUNzT7IkW7JvK247sZga9M
- AWOpGPODHWpbgKlxZK+Vb8RFc8RFNySV0m5JTsHgM61drYYsf2x6G7b/+iFm9Aj/IhyO1gHYoZVf
- DfscwEzF7c4nsGLMs0BjRCZst5aXlQFfajSjhXCB61pVf9bj1PWVZ9tXomAKNFx4eoYO96L+zjMJ
- +lxWvSV9JqtbpUyGQ5Rgedm8A1R9K4ceGzSP+Ns/AAAA//8DABeuNsXjEQAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"9e60360062438128abc26bb1ceaaf9f1"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: 20.91
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/jd6gq8/submit_for_settlement
- response:
- body:
- string: !!binary |
- H4sIAHjak1UAA9xYTW/jNhC9768IfGck2U7iBIoWCxQFemhRYHd76CWgqJHFWCK1JOXY++s7FCVZ
- iqhsgKLAojdr5pGcL74ZOv54qsqrIyjNpXhcRdfh6goEkxkX+8fV1y+/kt3qY/IhNooKTZlBVPLh
- 6irmWfKc3e6/7eIAf1qJNtQ0OtFNWnFjIHvKpXrSYEwJFQgTBx3AYs25hkTTEuKg/WllrFEKTz4T
- riVBAyD5+vmXOJiLLZhWshEmWYfX91EcdF9WUYFiBRWGUMaskKB12qT3h+3d9+/p81rd3jzHgQ9l
- V0uVgcKPK8HLx5VRDawCZ5wCij4Raq6swY+rDD8Nr2CFNkQ3JLwjYfQlWj9Edw83u7/R7GFBu76p
- s3eu3z2EIa6/LOiCo41Eq+2Hi34Ubbebm/W2jz9Kc660IYJW8Np+VJZ0WcdkVVNx9migorz0yF8g
- 1dz49qoLKXzynJ5mUQ3GbsUpL0usuouL25f/1jltFADWQJYp0Nrn/cmAyGwWFiGlZLTkxre9gj3e
- Fl+IJF6F0hXz/TYK7+JgLOrNxrpU52WvnNquILSsC7p+F2rzI5RoMB+czXM1Sg+6ljci812UQaO7
- QqdK0fNEifEcsYlvkwtrkJQaVngxBa/rcbn4au5/WTNvZPCnKZZxdjryIjmHMtO9P1QZznhNHfmu
- 8QpMJSN+GK2M6VETUEoqgsGtpdDgjUmLG8Vsik5+x57xJqDfYpruV6Df3C5vYlr/j8f5yrnQQvdI
- +i/0jJpncNcD+4ieV0RcK8nwNIwDbUwhFf9OW7hzLwo3f2ITeRM03WVqShSG4Xj53FCPzmDpJ59q
- 1Bwh865uEW1os4xbSzD4c9jM16PkzCYox8TjCiy6FNQ8Io3t6XiKa+ILKENPxI0LXhWcoKr7Hp1K
- WQIVqySnpbajygDoZwL0gjCq+h5l5AFEkh6K+luF8PbLaVIukm0YrXc7S6RiTEHbJNrtcIjpPrpb
- hpuSdjT6i2uK1TJ89yxTc+WSWUlhiiTCGzQTzrBnoAoHjnU4AbfS7tyuIRPLUe2w9/XzpU1fpBcr
- C1m24fYzD6/oHkijyqQwptYPQUA1sru+ThXlwl6cruKvkXKRAs6W9J8qwGrNnkq5l8ER/b+uxf4j
- iCNXUljAo6YiS+UJx4Nhf3deI/i3BrrkI40gmCN7qGS7YbttlGeMbdgmv73d3N7kcIP3hMEOUoZp
- WVzaEZaCmiIv/SFtabvfTlMALU2BscCJVRyEfBFxMJI5UAYpNxe9++xUjcKSwPreN6Wd+Uao15qh
- O9kBltPyAh3JeoI9K1mOEL2gS4zWDfIz9ldxuGAm0infy5xYLRXMDuaf7IlzRR8qmTWsZfHL6ReZ
- Ax1BVJLo7LBw2QZ91wmml617bZCCY2Wq82TWGDp1iwDcqIu0vaE4cqOiqt8xxt8jgw74YYfuFdMT
- qmW6y8OmRSy9TVyBaqwoJQtuatqUB7y1rWSwbzQYaYmMBgmtOdoxlzsvg7mb/9Lz7gGy6Pl7Hng/
- QRwGSVcirkeU1D9wNqlmiteLA+lIPzB6Ow6TGgcgmRGc+YgNqYcDXyHRLGW8WDT51Tm2URLsiZ5Z
- OuO6vYFeHbhdZE9eC+y89FZDPp3bNt0UJ1X7Mke/Fu7voHe9El/bAua7Ys6PtrnnAEtt2R4rX4jL
- 5kyLYUgbpd1jIQODz9V+xJyq/LkZvTT8x08xsz8j3gmHkw0AdirlN8M+i7BSccr1bdgw5nlIYEYW
- fLee140BX2l0LZZwgWNr0/5sxwrHr0+WX+NgCTQd/EaOTufD8ey3CPrxXu20+KO9hpHSFDhMELxe
- tu4ATc/lNGIT8kg+/AMAAP//AwAArOyd+RIAAA==
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"f6e2f3f32d31e9f0a38283203fc24923"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: null
- headers: {}
- method: GET
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/jd6gq8
- response:
- body:
- string: !!binary |
- H4sIAHvak1UAA9xYTW/jNhC9768IfGck2U7iBIoWCxQFemhRYHd76CWgqJHFWCK1JOXY++s7FCVZ
- iqhsgKLAojdr5pGcL74ZOv54qsqrIyjNpXhcRdfh6goEkxkX+8fV1y+/kt3qY/IhNooKTZlBVPLh
- 6irmWfKc3e6/7eIAf1qJNtQ0OtFNWnFjIHvKpXrSYEwJFQgTBx3AYs25hkTTEuKg/WllrFEKTz4T
- riVBAyD5+vmXOJiLLZhWshEmWYfX91EcdF9WUYFiBRWGUMaskKB12qT3h+3d9+/p81rd3jzHgQ9l
- V0uVgcKPK8HLx5VRDawCZ5wCij4Raq6swY+rDD8Nr2CFNkQ3JLwjYfQlWj9Edw83u7/R7GFBu76p
- s3eu3z2EIa6/LOiCo41Eq+2Hi34Ubbebm/W2jz9Kc660IYJW8Np+VJZ0WcdkVVNx9migorz0yF8g
- 1dz49qoLKXzynJ5mUQ3GbsUpL0usuouL25f/1jltFADWQJYp0Nrn/cmAyGwWFiGlZLTkxre9gj3e
- Fl+IJF6F0hXz/TYK7+JgLOrNxrpU52WvnNquILSsC7p+F2rzI5RoMB+czXM1Sg+6ljci812UQaO7
- QqdK0fNEifEcsYlvkwtrkJQaVngxBa/rcbn4au5/WTNvZPCnKZZxdjryIjmHMtO9P1QZznhNHfmu
- 8QpMJSN+GK2M6VETUEoqgsGtpdDgjUmLG8Vsik5+x57xJqDfYpruV6Df3C5vYlr/j8f5yrnQQvdI
- +i/0jJpncNcD+4ieV0RcK8nwNIwDbUwhFf9OW7hzLwo3f2ITeRM03WVqShSG4Xj53FCPzmDpJ59q
- 1Bwh865uEW1os4xbSzD4c9jM16PkzCYox8TjCiy6FNQ8Io3t6XiKa+ILKENPxI0LXhWcoKr7Hp1K
- WQIVqySnpbajygDoZwL0gjCq+h5l5AFEkh6K+luF8PbLaVIukm0YrXc7S6RiTEHbJNrtcIjpPrpb
- hpuSdjT6i2uK1TJ89yxTc+WSWUlhiiTCGzQTzrBnoAoHjnU4AbfS7tyuIRPLUe2w9/XzpU1fpBcr
- C1m24fYzD6/oHkijyqQwptYPQUA1sru+ThXlwl6cruKvkXKRAs6W9J8qwGrNnkq5l8ER/b+uxf4j
- iCNXUljAo6YiS+UJx4Nhf3deI/i3BrrkI40gmCN7qGS7YbttlGeMbdgmv73d3N7kcIP3hMEOUoZp
- WVzaEZaCmiIv/SFtabvfTlMALU2BscCJVRyEfBFxMJI5UAYpNxe9++xUjcKSwPreN6Wd+Uao15qh
- O9kBltPyAh3JeoI9K1mOEL2gS4zWDfIz9ldxuGAm0infy5xYLRXMDuaf7IlzRR8qmTWsZfHL6ReZ
- Ax1BVJLo7LBw2QZ91wmml617bZCCY2Wq82TWGDp1iwDcqIu0vaE4cqOiqt8xxt8jgw74YYfuFdMT
- qmW6y8OmRSy9TVyBaqwoJQtuatqUB7y1rWSwbzQYaYmMBgmtOdoxlzsvg7mb/9Lz7gGy6Pl7Hng/
- QRwGSVcirkeU1D9wNqlmiteLA+lIPzB6Ow6TGgcgmRGc+YgNqYcDXyHRLGW8WDT51Tm2URLsiZ5Z
- OuO6vYFeHbhdZE9eC+y89FZDPp3bNt0UJ1X7Mke/Fu7voHe9El/bAua7Ys6PtrnnAEtt2R4rX4jL
- 5kyLYUgbpd1jIQODz9V+xJyq/LkZvTT8x08xsz8j3gmHkw0AdirlN8M+i7BSccr1bdgw5nlIYEYW
- fLee140BX2l0LZZwgWNr0/5sxwrHr0+WX+NgCTQd/EaOTufD8ey3CPrxXu20+KO9hpHSFDhMELxe
- tu4ATc/lNGIT8kg+/AMAAP//AwAArOyd+RIAAA==
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"4b13142cde81a851cbcfaf7a2fb034c1"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: null
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/jd6gq8/void
- response:
- body:
- string: !!binary |
- H4sIAHzak1UAA9xYTW/jNhC9768IfGck2U7iBIoWCxQFemhRYLs99BJQ1MhiLJFaknLs/fUdipIs
- RVQ2QFFgsTdr5pGcL848Ov54qsqrIyjNpXhcRdfh6goEkxkX+8fVl79+JbvVx+RDbBQVmjKDqOTD
- 1VXMs+Q5u91/3cUB/rQSbahpdHKUPIMsDrpPqzHnGhJNS4iD9qeVsUYpPOdMuJYEj4Pky+df4mAu
- tmBayUaYZB1e30dx0H1ZRQWKFVQYQhmzQoK2aJPeH7Z3376lz2t1e/McBz6UXS1VBgo/rgQvH1dG
- NbAKnHEKqIGMUHNlDX5cZfhpeAUrtCG6IeEdCaO/ovVDdPdws/sHzR4WtOubOnvn+t1DuMX1lwVd
- cLSRaLX9cLGOou12c7Pe9tFGac6VNkTQCl7bj8qSLuuYrGoqzh4NVJSXHvkLpJob3151IYVPntPT
- LKrB2K045WWJNXZxcfvy/zqnjQLAGsgyBVr7vD8ZEJnNwiKklIyW3Pi2V7DHu+ELkcSrULpivt9G
- 4V0cjEW92ViX6rzslVPbFYSWdUHX70JtvocSDeaDs3muRulB1/JGZL6LMmh0V+hUKXqeKDGeo97h
- 20SDMSVUgBczpYYVXkzB63pcLr6a+ylr5o0M/jDFMs5O17xIzqHMdO8PVYYzXlPXfNd4BaaSUX8Y
- rYzpURNQSiqCwa2l0OCNSYsbxWyKTn7HmfEmoN9imu5XoN/cLm9iWv+Px/nKudBC99j0X+gZNc/g
- rgfOET2viLhWkuFpGAfamEIq/o22cOdeFG7+xCHyJmi6y9SUKAzD8fK5oR6dwdJPPtWoOdpxv4Ro
- Q5tl3FqCwZ/DZr4igWA2QTkmHldg0aWg5hFp7EzHU9wQX0AZeiKOLnhVcIKq7md0KmUJVKySnJba
- UpUB0HMC9IIwqvoZZeQBRJIeivprhfD2y2lSLpJtGK13O9tIxbgFbZNot0MS0310tww3JS01+ptr
- itUyfPddpubKJbOSwhRJhDdoJpxhz0AVEo51OAG30u7cbiAT26Naavfl82VMX6QXKwtZtuH2dx5e
- 0T2QRpVJYUytH4KAauzu+jpVlAt7cbqKv8aWiy3gbJv+UwVYrdlTKfcyOKL/17XYfwRx5EoKC3jU
- VGSpPCE9GPZ35zWCf22gSz62EQRz7B4q2W7YbhvlGWMbtslvbze3Nznc4D1hsIOUYVoWl3YNS0FN
- sS/9IW1pu99OUwAtTYGxQMYqDkK+iDgYyRwog5Sbi959dqpGYUlgfe+b0nK+Eeq1ZphOlsByWl6g
- I1nfYM9KliNEL+gSo3WD/RnnqzhcMBPptN/LnFgtFcwS80/2xLmiD5XMGtZ28cvpF5kDHUFUkujs
- sHDZBn03CaaXrXtbkIJjZarzhGsMk7pFAG7URdreUKTcqKjqd9D4e+ygA37YoXvF9A11+rBpEUtv
- E1egGitKyYKbmjblAW9tKxnsGxEjLbGjQUJrjnbM5c7LYO7mf/QcHyDhW57rJq24wWp8yqV6ulC1
- nzAO27fiMH/W/gBeD5LuYrjJWFI/zW5SzRSvF2n4SD/MsfYRQGqkfTIjyHSJDaCn879ColnKeLFo
- 8qtzLD0gyAQ8L4iM67bveHXgdpF9y16YSUsvVJwic9ummyI/t/9HoF8LXWvQO4ZQUCFgvivm/Ggp
- TQ6wREbssfKFuGzOtBiGtFHaPZEyMPhI74n1VOXPzeh95T9+ipn9BfNOOJxsAHA+K78Z9jGIlYrc
- 3rdhw5jn+YQZWfDdel43Bnyl0RELwgWS9ab92ZIpN1We7FSJgyXQlO6OHJ2y4jHjXQR9f6+WI39v
- r4FImwIpFMHrZesO0PRcTiM2aR7Jh38BAAD//wMAYLeqXd0TAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"d30ef6033918c8b77b6dff79c0170550"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode 'bkhpqm20.9111443524salefalse2'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAH7ak1UAA9xXS2/jNhC+768wfGck+ZF1FoqCBYoCPbRAu5seellQ1NhiLJFaknLs/fUdipIs
- RVSSHgoUvUkzH4fznmH8cC6LxQmU5lLcL6ObcLkAwWTGxeF++fj1Z7JbPiQfYqOo0JQZRCUfFouY
- Z8ndcVNud3GAn5aiDTW1Tmhtcqn4D8jioCVZrrlUkGhaQBw0n5bGaqXwrgvhWhK8EpLHLz/FwZRs
- wbSUtTDJKry5i+Kg/bOMEhTLqTCEMmaJBPXRJkXtPv74kT6t1O32KQ58KHtaqgwU/iwEL+6XRtWw
- DJxyCqiBjFCzsArfLzP8NbyEJeoQbUn4kYTR12j1Kdp9Cm//QrX7A835usr+2fnrgdY52kjU2v44
- f0fRZrPerjadx5G650obImgJL/VHZkHneUyWFRUXDwdKygsP/RlSzY1PVpVL4aPv6Xni1WBoVpzy
- osA8u5q4ef53jdNGAWAOZJkCrX3Wnw2IzEZhFlJIRgtufOIVHLA+fC6SWAqFS+a7TRR+jIMhqVMb
- 81Jd5q1ybHuC0KLK6epdqPVbKFFjPDibxmoQHjRtX4vMVyg9R7eJTpWilxET/TnoHz4hGowpoAQs
- zJQalnsxOa+qYbr4cu5/mTOvRPA/kyzD6LTNi+w5FJnu7KHKcMYr6prvCktgTBn0h8HJmJ40AaWk
- IujcSgoNXp80uIHPxujkV5wZrwI6EeNwvwD94qS8imnsP52mJ6dECz1g03+mF+Q8gSsPnCN6mhFx
- pSTD29AP3YilDbyRFN798fX2d3Tpa6CxlLEqURiGw+NTRT08g6mffK6Qc7Ljfg7RuDbLuNUEnT+F
- TWw9Sc5sgPYYeDyBSZeCmnqktjMdb3FDfAZl6Jm4dcHLgjOUVTejUykLoGKZ7Gmh7arSA7qdAK0g
- jKpuRhl5BJGkx7z6XiK8+XOclItkE0ar3c42UjFsQZsk2u1wiWl/2ipDoaRZjf7kmmK29P9dl6m4
- csEspTB5EmEFTYgT7AWowoVjFY7ADbW9tx3IxPaoZr17/HId01fqVctcFo27/Z2Hl/QApFZFkhtT
- 6U9BQDV2d32TKsqFLZw242+w5WILuNim/60EzNbsWyEPMjih/TeVODyAOHElhQXcayqyVJ5xPejl
- u/tqwb/X0AYf2wiCOXYPlWzWbLeJ9hlja7be396ub7d72EbhmsEOUoZhmT3aNiwFFcW+9Ju0qe2+
- HScHWpgcfYEbqzgK+SziYEBzoAxSbq5899uyaoUpgfl9qAu78w1QLzn9dLILLKfFFTqgdQ32omQx
- QHSENjBa19ifcb6K4xUzoo77vdwTy6WC2cX8s71xyuhcJbOaNV38evuV5kAnEKUkOjvOFFvPbyfB
- uNja9wXJOWamuox2jX5SNwhAQa2nbYXiyo2MsnrnGt7jewmvPmwaxNzbxCWoxoxSMuemonVxxKpt
- KL1+g8VIS+xokNCKox5TurMyeGlmT2ld43pjQf2LVp1qpng1u4gN+H0na9ZAUuHglxnBXYdYJ3pq
- /wUS1VLGi0WVX9xjBwTBWeDZITOum8zz8sBJkV3RznSluTcK9pGpbmOhuKHZFynaNZO3Pd/NCHxl
- CphKxZif7FDbA8yNI3utfCYumhMuuiGtlXZLcgYGn2ndajVm+WMz2LD9148xk0f4O+Fwtg7ADq38
- atjnAGYqbnc+gTVjngUaIzJju7W8qg34UqMdLYQLXNfq5rMZp66vfLN9JQ7mQOOFZ2DoeC8a7jyz
- oLdlNVvSW7L6VcrkOEQJlpfNO0DV93LssVHzSD78DQAA//8DAI5f6fXjEQAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"cf179f240b042b2fc85a1c5e2c993c1a"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: 15.76
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/9k4m58/submit_for_settlement
- response:
- body:
- string: !!binary |
- H4sIAITak1UAA9xYS2/jNhC+51cYvjOS/IqzULRYoCjQQwu0u9lDLwFFjSyuJVJLUo6dX9+hXpYi
- KhugaFH0Zs18JOfFb4YOP56LfHECpbkUD8vg1l8uQDCZcHF4WD5++Znslx+jm9AoKjRlBlHRzWIR
- 8iS6P26K7T708KeVaENNpSNdxQU3BpKnVKonDcbkUIAwodcCLNZcSog0zSH06p9Wxiql8OQL4VoS
- NACix88/hd5UbMG0kJUwUbC9vduFXvtlFQUollFhCGXMCglap02Mtt69vMTfVmq3/RZ6LpRdLVUC
- Cj8WgucPS6MqWHqNcQoo+kSoWViDH5YJfhpewDJa+cGW+HfED74Eqw/B/oO/+xPN7hfU66syeff6
- YIXrrwva4Ggj0Wr70UQ/CDab9Xa16eKP0pQrbYigBby2H5U5ndcxWZRUXBwaKCjPHfJniDU3rr3K
- TAqXPKXnSVS9oVthzPMcq+7q4ub5n3VOGwWANZAkCrR2eX82IBKbhVlILhnNuXFtr+CAt8UVIolX
- IW+K+X4T+HehNxR1ZmNdqsu8V43ariA0LzO6ehdq/SOUqDAfnE1zNUgPupZWInFdlF6j20KnStHL
- SInxHLCJa5Mra5CYGpY5MRkvy2G5uGruf1kzb2TwP1Msw+y05EVSDnmiO3+oMpzxkjbku8IrMJYM
- +GGwMqQnTUApqQgGt5RCgzMmNW4QszE6+hV7xpuAbotxul+Bfml2eRNT+386TVdOhRZ6QNJ/phfU
- fIPmemAf0dOKCEslGZ6GcaCVyaTiL7SG1zv593982f2OIX0LNN5lbErg+/5w+dRQh85g6UefStSc
- IHGurhF1aJOEW0sw+FPYxNeT5MwmKMXE4wosuhjUNCKV7el4StPEZ1CGnkkzLjhVcIai7Hp0LGUO
- VCyjlObajio9oJsJ0AvCqOp6lJFHEFF8zMrvBcLrr0YTcxFt/GC131siFUMK2kTBfh+EXvvR3jLc
- lNSj0VeuKVZL/92xTMlVk8xCCpNFAd6giXCCvQBVOHCs/BG4lrbntg2ZWI6qh73Hz9c2fZVercxk
- XofbzTy8oAcglcqjzJhSf/A8qpHd9W2sKBf24rQVf4uUixRwsaT/VABWa/KUy4P0Tuj/bSkOH0Gc
- uJLCAh40FUkszzge9Ps351WCf6+gTT7SCII5soeKNmu23wRpwtiardPdbr3bprAN/DWDPcQM0zK7
- tCUsBSVFXvpN2tJufjeaDGhuMowFTqziKOSzCL2BrAElEHNz1TefrapSWBJY34cqtzPfAPVa03cn
- O8Byml+hA1lHsBcl8wGiE7SJ0bpCfsb+Ko5XzEg65nuZEqulgtnB/JM9caroQiWTitUsfj39KmtA
- JxCFJDo5zly2Xt92gvFla18bJONYmeoymjX6Tl0jADdqI21vKI7cqCjKd47xPb7foX3FdIRqme76
- sKkR7Wtk5d/eB8O3SVOgGitKyYybklb5EW9tLentGwxGWiKjQURLjnZM5Y2X3tTNv+15/QCZ9fw9
- D7xhHCZvtH8nDr2kLZGmR+TUPXBWsWaKl7MD6UDfM3o9DpMSByCZEJz5iA2pgwNfIdEsZZxYNPnV
- ObZREuyJjlk64bq+gU4dNLvIjrxm2HnurYZ8OrVtvClOqvZljn7N3N9e3/RKfG0LmO6KOT/Z5p4C
- zLVle6x8Jk02J1oMQ1wp3TwWEjD4XO1GzLHKnZvBS8N9/Bgz+TPinXA42wBgp1JuM+yzCCsVp1zX
- hhVjjocEZmTGd+t5WRlwlUbbYgkXOLZW9c96rGj49cnya+jNgcaD38DR8Xw4nP1mQT/eq54Wf7RX
- P1KaDIcJgtfL1h2g6akcR2xEHtHNXwAAAP//AwDct7JM+RIAAA==
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"28baf59c4a3e1b380c1822545a184649"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: null
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/9k4m58/void
- response:
- body:
- string: !!binary |
- H4sIAIbak1UAA9xYS2/jNhC+51cEvjOS/IqzULRYoCjQQwu0u+mhl4CiRhbXEqklKcfOr+9QL0sR
- 5Q1QFNj2Zs18JOfFmY8OP56K/PYISnMpHhfBnb+4BcFkwsX+cfH05WeyW3yMbkKjqNCUGURFN7e3
- IU+ih8O62OxCD39aiTbUVDo6Sp5AEnrtp9WYcwmRpjmEXv3TylilFJ5zJlxLgsdB9PT5p9Cbii2Y
- FrISJgo2d/fb0Gu/rKIAxTIqDKGMWSFBW7SJ0bL719f461JtN19Dz4Wyq6VKQOHHreD548KoChZe
- Y5wCaiAh1Nxagx8XCX4aXsAiWvrBhvj3xA++BMsPwe6Dv/0Lze4X1OurMnn3+mCN6y8L2uBoI9Fq
- +9HEOgjW69Vmue6ijdKUK22IoAW8tR+VOZ3XMVmUVJwdGigozx3yF4g1N669ykwKlzylp0lUvaFb
- YczzHGvs4uL65d91ThsFgDWQJAq0dnl/MiASm4VZSC4Zzblxba9gj3fDFSKJVyFvivlhHfj3oTcU
- dWZjXarzvFeN2q4gNC8zunwXavU9lKgwH5xNczVID7qWViJxXZReo9tCp0rR80iJ8Rz0DtcmGozJ
- oQC8mDE1LHNiMl6Ww3Jx1dz/smauZPCHKZZhdtrmRVIOeaI7f6gynPGSNs13iVdgLBn0h8HKkB41
- AaWkIhjcUgoNzpjUuEHMxujoV5wZVwHdFuN0vwH90uxyFVP7fzxOV06FFrrHpv9Cz6j5Cs31wDmi
- pxURlkoyPA3jQCuTScVfaQ2vd/If/viy/R1Deg003mVsSuD7/nD51FCHzmDpR59K1BztuJ9D1KFN
- Em4tweBPYRNfkUAwm6AUE48rsOhiUNOIVHam4ynNEJ9BGXoiDV1wquAERdnN6FjKHKhYRCnNtaUq
- PaDjBOgFYVR1M8rIA4goPmTltwLh9VejibmI1n6w3O1sIxXDFrSOgt0uCL32o71luCmpqdGfXFOs
- lv676zIlV00yCylMFgV4gybCCfYMVCHhWPojcC1tz20HMrE9qqZ2T58vY/oivViZybwOt7vz8ILu
- gVQqjzJjSv3B86jG7q7vYkW5sBenrfg7bLnYAs626T8XgNWaPOdyL70j+n9Xiv1HEEeupLCAR01F
- EssT0oN+/+a8SvBvFbTJxzaCYI7dQ0XrFdutgzRhbMVW6Xa72m5S2AT+isEOYoZpmV3aNiwFJcW+
- 9Ju0pd38bjQZ0NxkGAtkrOIg5IsIvYGsASUQc3PRN5+tqlJYEljf+yq3nG+Aeqvpp5MlsJzmF+hA
- 1jXYs5L5ANEJ2sRoXWF/xvkqDhfMSDru9zIlVksFs8T8kz1xquhCJZOK1V38cvpF1oCOIApJdHKY
- uWy9vp0E48vWvi1IxrEy1XnENfpJXSMAN2ojbW8oUm5UFOU7aXyP73doXzFdQx0/bGpE+xpZ+ncP
- wfBt0hSoxopSMuOmpFV+wFtbS3r7BsRIS+xoENGSox1TeeOlN3XzH3seLK95rqu44Aar8TmV6vlC
- 1ebiMHmj/XfisL4Wh+mz9gfwupe0F6OZjDl10+wq1kzxcpaGD/T9HKsfAaRE2icTgkyX2AA6Ov8b
- JJqljBOLJr85x9IDgkzA8YJIuK77jlMHzS6ya9kzM2nuhYpTZGrbeFPk5/b/CPRrpmv1+oYhZFQI
- mO6KOT9aSpMCzJERe6x8IU02J1oMQ1wp3TyREjD4SO+I9Vjlzs3gfeU+foyZ/AXzTjicbABwPiu3
- GfYxiJWK3N61YcWY4/mEGZnx3XpeVgZcpdESC8IFkvWq/lmTqWaqPNupEnpzoDHdHTg6ZsVDxjsL
- +v5eNUf+3l49kTYZUiiC18vWHaDpqRxHbNQ8opu/AQAA//8DAIxFnn3dEwAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"09a8be3f241f4f80c11e1ffbdc4b013e"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode 'bkhpqm20.9111443524salefalse2'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAIjak1UAA9xXzW7jNhC+5ykC3xlZtpM4gaJgi6JAC7SH7qZAewkoamwxlkgtSTl2nn6HoiRL
- FpXkUqDoTZr5OJz/GUaPhyK/3IPSXIqHWXg1n12CYDLlYvswe/r2C1nPHuOLyCgqNGUGUfHF5WXE
- 05itX5d36yjAT0vRhppKx7QymVT8DdIoaEiWa44lxJrmEAX1p6WxSim860i4lgSvhPjp689RMCZb
- MC1kJUy8mF/dhVHQ/FlGAYplVBhCGbNEgvpok9ztVrdvb8nLQt1cv0SBD2VPS5WCwp9LwfOHmVEV
- zAKnnAJqICXUXFqFH2Yp/hpewAx1CK/J/JbMw2/h4j5c34fX/6Da3YH6fFWmnz9/g+dPBxrnaCNR
- a/vj/B2Gq9XyerFqPY7UDVfaEEELONcfmTmd5jFZlFQcPRwoKM899FdINDc+WWUmhY++oYeRV4O+
- WVHC8xzz7GTi6vXfNU4bBYA5kKYKtPZZfzAgUhuFSUguGc258YlXsMX68LlIYinkLpnvVuH8Ngr6
- pFZtzEt1nLbKse0JQvMyo4tPoZYfoUSF8eBsHKteeNC0TSVSX6F0HN0kOlWKHgdM9Gevf/iEaDAm
- hwKwMBNqWObFZLws++niy7n/Zc68E8H/TLL0o9M0L7LhkKe6tYcqwxkvqWu+CyyBIaXXH3onI7rX
- BJSSiqBzSyk0eH1S43o+G6Lj33FmvAtoRQzDfQb61Ul5F1Pbv9+PT46JFrrFpv9Kj8h5AVceOEf0
- OCOiUkmGt6Ef2hFLa3gtafHbn3//hEPkXdBQylCVcD6f94+PFfXwDKZ+/KVEzt6O+ylE7do05VYT
- dP4YNrJ1LzmzAdpg4PEEJl0CauyRys50vMUN8QmUoQfi1gUvCw5QlO2MTqTMgYpZvKG5tqtKB2h3
- ArSCMKraGWXkDkSc7LLye4Hw+s9xEi7i1TxcrNe2kYp+C1rF4XqNS0zz01QZCiX1avQX1xSzpftv
- u0zJlQtmIYXJ4hAraEQcYY9AFS4ci/kAXFObe5uBTGyPqte7p6+nMX2inrTMZF672995eEG3QCqV
- x5kxpb4PAqqxu+urRFEubOE0GX+FLRdbwNE2/ecCMFvT51xuZbBH+69KsX0EsedKCgt40FSkiTzg
- etDJd/dVgn+voAk+thEEc+weKl4t2XoVblLGlmy5ublZ3lxv4DqcLxmsIWEYlsmjTcNSUFLsS39I
- m9ru23EyoLnJ0Be4sYqdkK8iCno0B0oh4ebEd78Nq1KYEpjf2yq3O18Pdc7pppNdYDnNT9AerW2w
- RyXzHqIlNIHRusL+jPNV7E6YAXXY7+WGWC4VzC7mX+yNY0brKplWrO7ip9tPNAfagygk0eluotg6
- fjMJhsXWvC9IxjEz1XGwa3STukYACmo8bSsUV25kFOUn1/AO30l492FTI6beJi5BNWaUkhk3Ja3y
- HVZtTen06y1GWmJHg5iWHPUY052VwbmZHaVxjeuNOfUvWlWimeLl5CLW43edrF4DSYmDX6YEdx1i
- neip/TMkqqWMF4sqn91jBwTBWeDZIVOu68zz8sBJkW3RTnSlqTcK9pGxbkOhuKHZFynaNZG3Hd/N
- CHxlChhLxZjv7VDbAEyNI3utfCUumiMuuiGplHZLcgoGn2ntajVk+WPT27D91w8xo0f4J+FwsA7A
- Dq38atjnAGYqbnc+gRVjngUaIzJhu7W8rAz4UqMZLYQLXNeq+rMep66vPNu+EgVToOHC0zN0uBf1
- d55J0Mey6i3pI1ndKmUyHKIEy8vmHaDqGzn02KB5xBc/AAAA//8DAIXvkqvjEQAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"83934ea4071831ab16f72a0f993aa473"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: 20.92
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/c8w398/submit_for_settlement
- response:
- body:
- string: !!binary |
- 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
- AwAhVJCGcRUAAA==
- headers:
- cache-control: [no-cache]
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 422, message: Unprocessable Entity}
-- request:
- body: null
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/c8w398/void
- response:
- body:
- string: !!binary |
- H4sIAIvak1UAA9xYTW/jNhC951cYvjOybCdxAkXBFkWBFmgP3U2B9hJQ1NhiLJFaknLs/fU7FCVZ
- iqgkQFFg0Zs180jOF2ceHT0ci3x2AKW5FPfz8HIxn4FgMuVidz9//PIL2cwf4ovIKCo0ZQZR8cVs
- FvE0ZpuX1e0mCvCnlWhDTaXjg+QppFHQfFqNOZUQa5pDFNQ/rYxVSuE5J8K1JHgcxI+ff46CsdiC
- aSErYeLl4vI2jILmyyoKUCyjwhDKmBUStEWb5Ha/vvn2LXlequur5yjwoexqqVJQ+DETPL+fG1XB
- PHDGKaAGUkLNzBp8P0/x0/AC5mhDeEUWN2QRfgmXd+HmLrz6B83uFtTrqzL9+PoNrj8vaIKjjUSr
- 7YeLdRiu16ur5bqNNkq3XGlDBC3gtf2ozOm0jsmipOLk0UBBee6Rv0CiufHtVWZS+ORbehxFNei7
- FSU8z7HGzi6uX/5b57RRAFgDaapAa5/3RwMitVmYhOSS0Zwb3/YKdng3fCGSeBVyV8y363BxEwV9
- UWs21qU6TXvl1HYFoXmZ0eWHUKv3UKLCfHA2zlUvPejathKp76J0Gt0UOlWKngZKjGevd/g20WBM
- DgXgxUyoYZkXk/Gy7JeLr+b+lzXzRgZ/mGLpZ6dpXmTLIU916w9VhjNeUtd8l3gFhpJef+itjOhB
- E1BKKoLBLaXQ4I1JjevFbIiOf8eZ8Sag3WKY7legX90ub2Jq/w+H8cqx0EJ32PRf6Ak1z+CuB84R
- Pa6IqFSS4WkYB1qZTCr+jdbweqflb3/+/RMOkTdBw12GpoSLxaK/fGyoR2ew9ONPJWoOdtxPIerQ
- pim3lmDwx7CRr0ggmE3QFhOPK7DoElDjiFR2puMpbohPoAw9EkcXvCo4QlG2MzqRMgcq5vGW5tpS
- lQ7QcgL0gjCq2hll5B5EnOyz8muB8PrLaRIu4vUiXG42tpGKfgtax+FmgySm+WhuGW5Kamr0F9cU
- q6X7brtMyZVLZiGFyeIQb9BIOMKegCokHMvFAFxLm3ObgUxsj6qp3ePn85g+S89WZjKvw+3vPLyg
- OyCVyuPMmFLfBQHV2N31ZaIoF/biNBV/iS0XW8DJNv2nArBa06dc7mRwQP8vS7F7AHHgSgoLuNdU
- pIk8Ij3o9nfnVYJ/raBJPrYRBHPsHiper9hmHW5TxlZstb2+Xl1fbeEqXKwYbCBhmJbJpU3DUlBS
- 7Et/SFva7rfTZEBzk2EskLGKvZAvIgp6MgdKIeHmrHefjapSWBJY37sqt5yvh3qt6aaTJbCc5mdo
- T9Y22JOSeQ/RCprEaF1hf8b5KvZnzEA67PdyS6yWCmaJ+Sd74ljRhkqmFau7+Pn0s8yBDiAKSXS6
- n7hsnb6ZBMPL1rwtSMaxMtVpwDW6SV0jADdqIm1vKFJuVBTlB2j4NXbQDt/t0Lxi2oY6fNjUiKm3
- iStQjRWlZMZNSat8j7e2lnT29YiRltjRIKYlRzvGcudlMHbz33u+ecvz8XPuB/C6kzQF4SZCTv30
- sko0U7ycpJ89fde/a/JLSqQ7MiXI8IgNoKfjvUKiWcp4sWjyq3PsWCQ4AT3MOeW6vm9eHbhdZNuq
- Jnrx1MsMu+fYtuGmyEvtOxz9mritnd5NRnxbCxjvijk/2FG+BZgawvZY+UJcNkdaDENSKe2eBikY
- fJy2hHKo8uem967wHz/EjP56+CAcjjYAOJeU3wz7CMJKRU7r27BizPNswIxM+G49LysDvtJoBirh
- AklqVf+sSYTrpk+2m0bBFGhI83qODtlgn+lNgt7fq+aG7+3VEUiTIXUgeL1s3QGavpXDiA2aR3zx
- HQAA//8DAIr+0QLVEgAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"4cf34ff8d564ff5e10d08754517722f2"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode '4'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/customers
- response:
- body:
- string: !!binary |
- H4sIAIzak1UAA5SRzVKDMBSF930KJvtIYOpIO4HufIK6cXflXiAtCUwSLLy9BHHqiC5cnnPy3b/I
- 06jb6J2sU53JWfIgWESm7FCZOmcv52eesVOxk+XgfKfJFrsokgqLTIi9yMRBxrMI3pyVDRjPZ305
- 1DesLngdJ91gbWX8PQ2vK2Wd5wY0RUa1OfN2IBYvUQt/JWWnezDTxicNqt24fdOZbY0Kxo13ozen
- /C/9LIEn5OAjP/WUM5ylV5pYkYrkkYsnLpJzkh6T7JiKVxnfgYUfevwffwc++y8355WiFl1wwlZg
- vSpVv95yL+MfTgDjDRl2QeV5CRbdOg1YC9O6KiBaco422Vet8PMfAAAA//8DANWk1gksAgAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"b96a106eed80f95ce8ecfc1d407e2efd"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode '80040809fake-valid-nonce'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
- response:
- body:
- string: !!binary |
- H4sIAI7ak1UAA6xVu3LbMBDs9RUa9hBJPWzaQ8GTJmWa2CnSeEDgSGEEAgwAyma+PgeKelimnGSS
- Tre3uMdyAeUPr7Wa7sA6afQ6SmdJNAXNjZC6WkdPj59JFj3QSc4tCOkJZ1bQyXSaF1IppBAmhAXn
- AoaoFPRnlcdSDDFvnTc1WIJIliTLJEvu8vgc3fNKaZ0nmtUw1VKtI29biOIhqdj1HDd1w3Q3knHe
- AvjDfCMEePWgBYgPKMpwpqQfK2+hQsFGEo1xnimCCgK9W6bJbR6fQ4exW+1t10OEqWbD5qPLXbIW
- v2PpFnWV/APaNSEtMB/E8FPfNbCOBIZe1hDReZKuSHJLkvQxnd+n2f08/Y4f8XhgqNA24u8qnA70
- jopHLIU203SZpPMsC3ndY8GDJLSg36RjOMkxPmQ3Rgm019iqwTEoEZdM0Se91eZFY4UTNjmTypRE
- OtcyzYE+ff0UeO8Tk38X78+uyYkVbOnRfTjUGeuIBq6AQvrTgvtwnyhZqw5zFsYoYDqiQaBA65N7
- YmtRcII+b1WY9azYZWbS36ZG2r4/qY32G5rO8/gdeMHsgFlUaJ68ofbokQnictaSKQfDiaH7Bpjy
- G/z0cBrzDAsUWbMKSGsV3XjfuPs4Zs6Bd7PCMqnDY1HhMi+sm6Eb4oZ1NWj/XIPfGPGsTGXiHbpt
- 1ujqAfROWqMDYe2YFoV5xTfvWL/vhvYIXi6Y3p5GeoNODk/bkqZZlubxEAQc21ujzhx6APqkhYah
- J74YxIffAXdt4biVTRDRDaIxa1k3ON+bLWjKFytf2TzeRwFvtfzR9k9H0ZsN15KlBEuXC54t01Jw
- vuCL8uZmcbMqYZUmCw4ZFByv5NWjk//wIOxA14Y4sb1igGN+YFtsvb8C77bvb9zp/+sXAAAA//8D
- AElpROD1BgAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"d044f50bbf2604e357a13f4f5463974d"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode 'c35tgr2062.11salefalse4'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- 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
- JRUAAA==
- headers:
- cache-control: [no-cache]
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 422, message: Unprocessable Entity}
-- request:
- body: !!python/unicode '4'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/customers
- response:
- body:
- string: !!binary |
- H4sIAJHak1UAA5SRzVKDMBSF930KJvsItFJpJ9CdT1A37q65F0hLApOktry9BHHqiC5cnnPy3b+I
- w0230TtZpzpTsPQhYREZ2aEydcFejs88Z4dyJeTF+U6TLVdRJBSW2Waz22zzrYhHEbwxkw0Yz0d9
- 2tVXrE54vg26wdqK+HsaXlfKOs8NaIqMagvm7YVYPEUt/JXITvdghoVPGlS7cPumM8saFdwW3pXe
- nPK/9LMEnpCDj/zQU8FwlF5pYuU6STOePPEkPabrfZrv19mriO/AxF96/B9/Bz77TzfnlaIWXXDC
- VmC9kqqfb/ko4h9OAOMFGXZB5bkEi26eBqyFYV4VEC05R4vsq1b4+Q8AAAD//wMAog450ywCAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"7202dfde7d867952fcb266a898f3cb5f"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode '53393686fake-valid-nonce'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
- response:
- body:
- string: !!binary |
- H4sIAJLak1UAA6xVTXPaMBC98ysY34W/+HAyoEwvPfbSpIdeMrK0Bg2y5EoyCf++K2MwIZC0097Y
- t0/a3eenZfnwWqvxDqyTRq+idJJEY9DcCKnXq+jp8Sspogc6WnILQnrCmRV0NB4vS6kUUggTwoJz
- AUNUCuqzZSxFH/PWeVODJYjM8vwunxfzZXyOHniVtM4TzWoYa6lWkbctRHGfVOx2jpu6YXp/JeO8
- BfDH/q4Q4NWDFiA+oCjDmZL+2vUW1ijYlURjnGeKoIJA76ZpsljG59Cx7VZ7u+8gwlSzYdnV4S5Z
- +Wcs3aKukn9AuyWkBeaDGH7s9w2sIoGhlzVENEvSGUkWJEkf0+w+Le6z+U/8iKcD/Q1tI/7uhuFA
- 56j4iqXQZppOkzQripDXHRY8SEIJ+kM6hp2c4mN2Y5RAe10bNTgGJeKSKfqkt9q8aLxhwEZnUpmK
- SOdapjnQp+9fAu99YvTv4v3ZMxlYwZYe3YdNnbFOaOAKKKUfBjyEh0TFWnXsszRGAdMRDQIFWpc8
- EFuLghP0eatCr2eXXWZG3WtqpO3qk9pov6Ep7oF34AVzD8yiQlnyhtqhJyaIy14rphz0J/rqG2DK
- b/DTw9DmGRYosmZrIK1VdON94+7jmDkH3k1Ky6QOy2KNw7yw/QTdEDdsX4P2zzX4jRHPyqxNvEO3
- TRq9fgC9k9boQFg5pkVpXnHnne7vqqE9gpdLprdDS2/Q0XG1TWlaFOky7oOAY3lr1JlDj0CXtNAw
- 9MQ3g3j/O+CuLR23sgkiul40Zi3b9873ZguazhZiUeG3OUQBb7X81Xaro+zMhmPJSoKl05wX07QS
- nOc8r+bzfD6rYJYmOYcCSo5P8ubR0X9YCDvQtSFObG8Y4JTv2RZLH57Au+m7Fzf8f/0GAAD//wMA
- BxbVbvUGAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"e8e563a691f93a21e560098b70f16804"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode '53393686fake-valid-nonce'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
- response:
- body:
- string: !!binary |
- H4sIAJPak1UAA6xVwXKbMBC98xUe7jJgbIdkMJleeuylSQ+9ZIS0YI2FRCXhxH/fFcY2SXDSTnvz
- vve02l2e1vn9SyNnezBWaLUJk3kczkAxzYWqN+Hjw1eShfdFkDMDXDjCqOFFMJvlpZASJYRybsBa
- jyEqeLFyeST4ELPOOt2AIZ5I09t0na3zaIwedZUw1hFFG5gpITehMx2E0UBKep1jummpOkww1hkA
- d6pvQgAvDhQH/oFEakalcFPpDdQ4sAmi1dZRSXCCUNwuk/gmj8bQqexOOXPoIUJlu6WLyebeqtLP
- VKrDuQr2gezaIA1Q54fhZu7QwibkGDrRQFgs4mRF4hsSJw/J4i7J7hY3P/Ejng8MGbqW/12Gy4He
- UdGEpdBmqljGySLLPK96zHuQ+CuKH8JSrOQcn9itlhztNdWqdwyOiAkqi0e1U/pZYYYLFoxGpSsi
- rO2oYlA8fv/ide+J4N+H92fP5KLytnToPixqpDqjXsuhFO7S4DE8EhXt5KnOUmsJVIVFRaUFr+vZ
- o7IzOHGCRu+kL3aU7S0T9M+pFaYvgDRauW2RLPLoHfhGeQBqcESL+JW0R89K4FeKHdheuQUq3Ra/
- PVzKHGFeIhpaA+mMLLbOtfYuiqi14Oy8NFQovy1qbOaZHuZoh6ilhwaUe2rAbTV/krrW0R7tNm9V
- fQ9qL4xWXrCxVPFSv+DSO+fvb0N/eDOXVO0uJb1Cg9NuWxZJliV5NAQex+uNliOLnoCeNNBSNMU3
- jfjw2+O2Ky0zovVDtMPQqDH0MFjf6R0oXEq72xrtdYw83inxq+t3R9m7DdsSlQBTLFOWLZOKM5ay
- tFqv0/WqglUSpwwyKBm+yatHg/+wEfagGk0s310xwJkf1AavPr6Bd933T+7yB/YbAAD//wMAXfyn
- EPYGAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"39ce8334ff7259d6db321318e946d9ff"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode '94k9g6103.3salefalse4'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAJXak1UAA9xXTW/jNhC9768IfGck2Y7XCRQFCxSL9tBedlMUvSwoamxxLZEqSTl2fn2HoiRL
- FpVNDwWK3qSZR3K+OPMYP53K4uYISnMpHhfRbbi4AcFkxsX+cfH89TPZLp6SD7FRVGjKDKKSDzc3
- Mc+S9Wmf7rM4wE8r0YaaWie0NrlU/BVQ04qs1pwrSDQtIA6aTytjtVJ41plwLQkeCcnzl5/iYCq2
- YFrKWpgkCle3qzAO2l+rKUGxnApDKGNWSNAgbdL7w/rj62v6fak2d9/jwIeyq6XKQOHPjeDF48Ko
- GhaBs04BNZARam6sxY+LDH8NL2GRLMPojoQfSRh9jZYP0fZhef8n2t0vaNbXVfbP1l8WtNHRRqLV
- 9scF/G61ul9ttpsu5CjdcaUNEbSEa/tRWdB5HZNlRcXZo4GS8sIjf4FUc+Pbq8ql8Ml39DSJajB0
- K055UWChDVw0/65z2igArIEsU6C1z/uTAZHZLMxCCslowY1vewV7vCC+EEm8C4Wr5vt1FH6Mg6Go
- MxvrUp3nvXJqu4LQosrp8l2o1Y9QosZ8cDbN1SA96NquFpnvovQa3RY6VYqeR0qM56CB+DbRYEwB
- JeDFTKlhuReT86oalouv5v6XNfNGBv8zxTLMTtu8yI5DkenOH6oMZ7yirvmu8QqMJYP+MFgZ06Mm
- oJRUBINbSaHBG5MGN4jZGJ38ijPjTUC3xTjdV6Bf3C5vYhr/j8fpyqnQQvfY9F/oGTXfwV0PnCN6
- WhFxpSTD0zAO3YylDbzZabv5/Ef4M4b0LdB4l7EpURiGw+VTQz06g6WffKpQc7Tzfg7RhDbLuLUE
- gz+FTXw9Ss5sgnaYeFyBRZeCmkaktjMdT3FDfAZl6Ik4uuBVwQnKqpvRqZQFULFIdrTQlqv0gI4T
- oBeEUdXNKCMPILClH+73OJfdn9OkXCTrMFput7aRimELWifRdhvFQfvT3jLclDTc6HeuKVZL/991
- mYorl8xSCpMn0TIOJsIJ9gxUIeFYhiNwI23PbQcysT2q4XfPXy5j+iK9WJnLogm3v/Pwku6B1KpI
- cmMq/RAEVGN317epolzYi9NW/C22XGwBZ9v0v5WA1Zp9K+ReBkf0/7YS+ycQR66ksIBHTUWWyhPS
- g35/d14t+F81tMnHNoJgjt1DJesV266jXcbYiq12m81qc7eDOySQDLaQMkzL7NK2YSmoKPal36Qt
- bfftNDnQwuQYC6Ss4iDki4iDgcyBMki5uejdb6uqFZYE1ve+LiznG6CuNf10sgSW0+ICHci6BntW
- shggOkGbGK1r7M84X8XhghlJx/1e7ojVUsEsM/9kT5wqulDJrGZNF7+cfpE50BFEKYnODjOXrde3
- k2B82doHBsk5VqY6j7hGP6kbBOBGbaTtDUXKjYqyeicN7/H9Dm++bBrE7OPEVajGklIy56aidXHA
- a9tIegMHzEhLbGmQ0IqjIVO5czO49rOXtLFxzbGgfqZVp5opXs0ysYG+b2UNDyQVTn6ZESQ7xEbR
- c/mvkGiWMl4smnx1jp0QBIeBh0RmXDel59WB20V2t3amLc09UrCRTG0bb4oUzb5J0a+Zwu31bkjg
- M1PAdFfM+dFOtR3A3Dyyx8oX4rI50WIY0lppx5IzMPhO67jVWOXPzYBi+48fYybP8HfC4WQDgC1a
- +c2w7wGsVKR3vg1rxjwMGjMy47v1vKoN+EqjnS2EC+RrdfPZzFPXWL7ZxhIHc6Ax4xk4OiZGQ9Iz
- C/rxXg1N+tFePZcyOU5RgtfL1h2g6Ts5jtioeSQf/gYAAP//AwC4O19p5REAAA==
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"a9a15e040fcff16f05d20fff7ba91511"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: null
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/4xgbgd/void
- response:
- body:
- string: !!binary |
- H4sIAJbak1UAA9xYTW/jNhC951cEvjOSbMdxAkWLBYpFe2gvu1kUvSwoamxxLZEqSTl2fn2HoiRL
- EZUNUBRY9GbNPJLzxZlHxx9OZXF9BKW5FI+L6CZcXINgMuNi/7h4+vKJbBcfkqvYKCo0ZQZRydX1
- dcyzZH3ap/ssDvCnlWhDTa2To+QZoLT9tBpzriDRtIA4aH5aGauVwnPOhGtJ8DhInj7/EgdTsQXT
- UtbCJFG4ulmFcdB+Wk0JiuVUGEIZs0KCxmiT3h/Wdy8v6fel2tx+jwMfyq6WKgOFH9eCF48Lo2pY
- BM46BdRARqi5thY/LjL8NLyERbIMo1sS3pEw+hItH6Ltw/L+L7S7X9Csr6vs3etXIa6/LGijo41E
- q+2HC/btanW/2mw3XbhRuuNKGyJoCa/tR2VB53VMlhUVZ48GSsoLj/wZUs2Nb68ql8In39HTJKrB
- 0K045UWBRTZw0fy3zmmjALAGskyB1j7vTwZEZrMwCykkowU3vu0V7PFy+EIk8S4Urprv11F4FwdD
- UWc21qU6z3vl1HYFoUWV0+W7UKsfoUSN+eBsmqtBetC1XS0y30XpNbotdKoUPY+UGM9B8/BtosGY
- AkrAi5lSw3IvJudVNSwXX839L2vmjQz+NMUyzE7bvMiOQ5Hpzh+qDGe8oq75rvEKjCWD/jBYGdOj
- JqCUVASDW0mhwRuTBjeI2Rid/I4z401At8U43a9Av7ld3sQ0/h+P05VToYXusek/0zNqvoO7HjhH
- 9LQi4kpJhqdhHGhtcqn4C23gzU7bzac/w18xpG+BxruMTYnCMBwunxrq0Rks/eRjhZqjnfdziCa0
- WcatJRj8KWziKzIIZhO0w8TjCiy6FNQ0IrWd6XiKG+IzKENPxNEFrwpOUFbdjE6lLICKRbKjhbZc
- pQd0nAC9IIyqbkYZeQCBLf1wv8e57L6cJuUiWYfRcru1jVQMW9A6ibbbKA7aj/aW4aak4UZfuaZY
- Lf1312UqrlwySylMnkTLOJgIJ9gzUIWEYxmOwI20PbcdyMT2qIbbPX2+jOmL9GJlLosm3P7Ow0u6
- B1KrIsmNqfRDEFCN3V3fpIpyYS9OW/E32HKxBZxt0/9WAlZr9q2Qexkc0f+bSuw/gDhyJYUFPGoq
- slSekB70+7vzasH/rqFNPrYRBHPsHipZr9h2He0yxlZstdtsVpvbHdwigWSwhZRhWmaXtg1LQUWx
- L/0hbWm7306TAy1MjrFAyioOQj6LOBjIHCiDlJuL3n22qlphSWB97+vCcr4B6rWmn06WwHJaXKAD
- Wddgz0oWA0QnaBOjdY39GeerOFwwI+m438sdsVoqmGXmH+2JU0UXKpnVrOnil9MvMgc6gigl0dlh
- 5rL1+nYSjC9b+7ggOcfKVOcR1+gndYMA3KiNtL2hSLlRUVbvpPE9vt+hfcZ0DXX8smkQs48TV6Ea
- S0rJnJuK1sUBr20j6Q0cMCMtsaVBQiuOhkzlzs1g6ue/dr15gcy6Pn3Q/Qxu95K2JNxMKKifYNap
- ZopXswR0oO87eEN/SYWER2YEOR6xEfT0vFdINEsZLxZNfnWOHYwEZ6CHO2dcNzfOqwO3i+ya1Uw3
- nnubYf+c2jbeFJmpfYqjXzP3tde72YivawHTXTHnRzvMdwBzY9geK5+Jy+ZEi2FIa6Xd4yADg8/T
- jlKOVf7cDF4W/uPHmMm/D++Ew8kGACeT8pthn0FYqchqfRvWjHkeDpiRGd+t51VtwFca7UglXCBN
- rZufDY1w/fSb7adxMAcaE72Bo2M+OOR6s6Af79Wwwx/t1VNIkyN5IHi9bN0Bmr6T44iNmkdy9Q8A
- AAD//wMAQKdJndgSAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"2f0a4c2dce69c11b948ecf8d9a0ef0d8"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode 'bkhpqm10.011443524salefalse2'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
- response:
- body:
- string: !!binary |
- H4sIAJjak1UAA9xXzW7jNhC+5ykC3xlJtpN4A0XBAkXRHloU2M0W6CWgqLHFWCK1JOXY+/QdipIs
- RVSSHgoUvUkzH4fzP8P44VgWlwdQmktxv4iuwsUlCCYzLnb3i8evP5PN4iG5iI2iQlNmEJVcXF7G
- PEs2RmT5cxzgp6VoQ02tE1qbXCr+A7I4aEmWa04VJJoWEAfNp6WxWim860S4lgSvhOTxy09xMCVb
- MC1lLUwShVdhGAftn2WUoFhOhSGUMUskqI826af9+vbHj/R5qW6uUUkfyp6WKgOFP5eCF/cLo2pY
- BE45BdRARqi5tArfLzL8NbyERbIMo2sS3pIw+hot76LN3Wr5F6rdH2jO11X2z86fD7TO0Uai1vbH
- +TuK1uvV9XLdeRypW660IYKW8Fp/ZBZ0nsdkWVFx8nCgpLzw0F8g1dz4ZFW5FD76lh4nXg2GZsUp
- LwrMs7OJ65d/1zhtFADmQJYp0Npn/dGAyGwUZiGFZLTgxidewQ7rw+ciiaVQuGT+tI7C2zgYkjq1
- MS/Vad4qx7YnCC2qnC4/hFq9hxI1xoOzaawG4UHTtrXIfIXSc3Sb6FQpehox0Z+D/uETosGYAkrA
- wkypYbkXk/OqGqaLL+f+lznzRgT/M8kyjE7bvMiWQ5Hpzh6qDGe8oq75LrEExpRBfxicjOlBE1BK
- KoLOraTQ4PVJgxv4bIxOfsOZ8SagEzEO9yvQr07Km5jG/sNhenJKtNAdNv0XekLOM7jywDmipxkR
- V0oyvA390I1Y2sAbSas/wj9/uUGXvgUaSxmrEoV2rM5xZ04aTP3kc4Wcgx33c4jGtVnGrSbo/Cls
- YutBcmYDtMXA4wlMuhTU1CO1nel4ixviMyhDj8StC14WHKGsuhmdSlkAFYtkSwttV5Ue0O0EaAVh
- VHUzysg9iCTd59X3EuHNn+OkXCTrMFpuNraRimELWifRZhPFQfvTVhkKJc1q9I1ritnS/3ddpuLK
- BbOUwuRJhBU0IU6wJ6AKF45lOAI31PbediAT26Oa9e7xy3lMn6lnLXNZNO72dx5e0h2QWhVJbkyl
- 74KAauzu+ipVlAtbOG3GX2HLxRZwsk3/qQTM1uypkDsZHND+q0rsHkAcuJLCAu41FVkqj7ge9PLd
- fbXg32tog49tBMEcu4dK1iu2WUfbjLEVW21vblY311u4jsIVgw2kDMMye7RtWAoqin3pd2lT2307
- Tg60MDn6AjdWsRfyRcTBgOZAGaTcnPnut2XVClMC83tXF3bnG6Bec/rpZBdYToszdEDrGuxJyWKA
- 6AhtYLSusT/jfBX7M2ZEHfd7uSWWSwWzi/lne+OU0blKZjVruvj59jPNgQ4gSkl0tp8ptp7fToJx
- sbXvC5JzzEx1Gu0a/aRuEICCWk/bCsWVGxll9cE1vMf3Et582DSIubeJS1CNGaVkzk1F62KPVdtQ
- ev0Gi5GW2NEgoRVHPaZ0Z2Xw2sye0rrG9caC+hetOtVM8Wp2ERvw+07WrIGkwsEvM4K7DrFO9NT+
- KySqpYwXiyq/uscOCIKzwLNDZlw3meflgZMiu6Kd6UpzbxTsI1PdxkJxQ7MvUrRrJm97vpsR+MoU
- MJWKMT/YobYFmBtH9lr5Qlw0J1x0Q1or7ZbkDAw+07rVaszyx2awYfuvH2Mmj/APwuFoHYAdWvnV
- sM8BzFTc7nwCa8Y8CzRGZMZ2a3lVG/ClRjtaCBe4rtXNZzNOXV95sn0lDuZA44VnYOh4LxruPLOg
- 92U1W9J7svpVyuQ4RAmWl807QNW3cuyxUfNILv4GAAD//wMA/8VwduMRAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"4642cd8f767f1e2b62ed787208d9fbc1"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 201, message: Created}
-- request:
- body: !!python/unicode '- authorized
'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/advanced_search_ids
- response:
- body:
- string: !!binary |
- H4sIAJnak1UAA7IpTk0sSs7QLUotLs0pKbbjUlCwKUhMT9UtzqxKVSipLEi1VcrMK0lNTy1SsjM1
- sNGHS4KVZqYUQxUlFhUlViqBBEHAJrMkNdfOpCI9KT3FRh/MQZGxKMlLychCyABZKUDLbfTRnQMA
- AAD//wMAJ2EIFKAAAAA=
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"274ef038831f3de4e761a618f98e7150"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: !!python/unicode '- authorized
- 4xgbgd
- 8tndhj
'
- headers: {}
- method: POST
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/advanced_search
- response:
- body:
- string: !!binary |
- H4sIAJvak1UAA9xYTY/bNhC951csfOdasr0bJ/AqCFAU7aFFgWRToJeAosYWY4lUSMpr59d3SOrT
- ona3hwJFb9bM43BmOJx59O7DuSxuTqA0l+JhEd9GixsQTGZcHB4Wj59/JtvFh+TNjinIuCGMqowY
- RYWmzOAKfWMuFTwsmCwKcJJF8ubmZsdqpUAYUtEDEFGXKagGyYWBA6hFEu+WAZRb7b41/wHXa+6i
- 3bJTOqiRhhaEGyh1YIOBFmMY+O3W8izZGpHl33ZL/Gkl2lBT64TWJpcKt8h2y0bk9kL7iaYFoGH7
- sw+UXQjXkmDaIHn89FMb2VBswbSUtTBJHN1GGEjzZRUlKJZTzARlzAoJ+qNN+u64efvjR/ptpe7v
- 0MkQyq6WKgOFHzeCFw8Lo2pYLL1zCqiBjFDT5CbDT8NLWCSrKL4j0VsSxZ/j1ft4+369+gvd7ha4
- 9XWV/bP1/YImOdrI0h+qz3ccbzbru9WmzThK91xpQwQt4dp/VBZ0XsdkWVFxCWigpLwIyJ8g1VgM
- AU2VSxGS7+l5ktXlMKxdyosC70of4ubp3w1OGwWANZBlCrQORX82IDJ7CrOQQjJacBMyr+CA9yOU
- IqntZXLF/G4TR2/xKg5ErdtYl+oyH5VX2xWEFlVOV69CrV9CYfMAxdn0rAbHg6Hta5GFLkqnaZsI
- VYpeRkoY9b2QEQ3GFFDahpZSw/IgJudVNSyXUM39L2vmmRP8zxTL8HSa5kX2HIpMt/FQZTjjFfXN
- d2Wn0Ugy6A+DlTt60gSUkopgciscmxDMicMNcjZGJ7/hzHgW0JoYH/cV6Fdv5VmMi/90mq6cCi30
- gE3/iV5Q882TAPxF9bQidpWSDHfDPLQjljq4s7T+I/rzl3tM6XOgsZWxK3Fkx+qcdmalwdJPPlao
- OdlxP4dwqc2QAqEnmPwpbBLrSXJmD2iPB48rGhI0yUhtZzru4of4DMrQM/F0IaiCM5RVO6NTKQug
- yMP2tNCWqnSAlhO0RK4paiOPIJL0mFffS0uZ7JfXpFwkmyhebbe2kYphC9ok8XaLDKv5aG6ZY4eW
- Gn3hmmK1dN9tl6m48odZSmHyJMYbNBFOsBegCgnHKhqBnbTZtxnIxPYoR+8eP/Vjupf2XuaycOkO
- dx5eWo5ZqyLJjan0++WSauzu+jZVFOklXpym4m+x5WILuNim/7UErNbsayEPcnnC+G8rcfgA4sSV
- FBbwoKnIUnlGetDZ9/vVgn+vWwaMbQTBHLuHSjZrtt3E+4yxNVvv7+/X93d7uIujNYMtpAyPZXZp
- 07AUVBT70u/Slrb/7TU50MLkmAtkrOIo5JPYLQcyD8og5abX+89GVSssCazvQ11YzjdAXWu66WQJ
- LKdFDx3I2gZ7UfiU6BGtoDkYrWvszzhfxbHHjKTjfi/3xGqpYJaYf7Q7ThVtqmRWM9fF+917mQed
- QJSS6Ow4c9k6fTMJxpeteV+QnGNlqsuIa3ST2iEADTWZtjcUKTcqyuqVNLzDdxaefdg4xNzbxBeo
- xopSMuemonVxxFvrJJ1/A2KkJXY0SGjF0Y+p3Ee5vA6zkzSp8b2xoGGiVaeaKV7NErGBvutkjgaS
- Cge/zAhyHWKTGLj7V0h0S5kgFl2+2scOCNK/iYccMuPaVV5QB96KbC/tTFeae6NgH5n6NjaKDM2+
- SDGumbrt9H5G4CtTwNQqnvnJDrU9wNw4stvKJ+JPc6LFNKS10p4kZ2DwmdZSq7EqfDYDhh3efoyZ
- PMJfCYezTQB2aBV2wz4HsFKR3YUM1owFCDSeyEzsNvKqNhAqjWa0EC6QrtXupxunvq98tX1lt5wD
- jQnPINAxLxpynlnQy7YcS3rJVkelTI5DlOD1snUH6PpejjM2ah72c+4PqOTN3wAAAP//AwD22yw7
- wxIAAA==
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"885a801ea3c1cab8e5cbdda81fc45053"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-- request:
- body: null
- headers: {}
- method: PUT
- uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/8tndhj/void
- response:
- body:
- string: !!binary |
- H4sIAJzak1UAA9xY3W/bNhB/z19h+J2RZDuOWygKCgzD9rBhQNsN2EtBkWeLsUSqJOXY/et31Jel
- iEoDDAOKvVl3Px7v+46OH89FvjiBNkLJh2V0Gy4XIJniQh4elp8//Ux2y8fkJraaSkOZRVRys1jE
- gic7K3n2FAf401GMpbYyyUkJDjwO2k/HsZcSEkNziIP6p6OxSmu850KEUQSvg+Tzx5/iYEp2YFqo
- StokCm/DMA7aL8coQLOMSksoY45IUBdj03fHzf23b+nTSm/vUEEfyp1WmoPGj4UU+cPS6gqWQaOc
- BmqBE2oXTuGHJcdPKwpYJqswuiPhPQmjT9HqfbR7v179jWr3B+rzVcnffn6L568HWucYq1Br99H4
- Ooo2m/XdatN5G6l7oY0lkhbwUn9k5nSex1RRUnnxcKCgIvfQnyE1wvpklZmSPvqenideDYZmxanI
- c8yxq4mb5//WOGM1AOYA5xqM8Vl/tiC5i8IsJFeM5sL6xGs4YG34XKSwFPImmd9tovA+DoakTm3M
- S32Zt6phuxOE5mVGV29Crb+HkhXGQ7BprAbhQdP2leS+Quk5pk10qjW9jJjoz0Hv8AkxYG0OBWBh
- ptSyzIvJRFkO08WXc//LnHklgj9Msgyj0zYvsheQc9PZQ7UVTJS0ab4rLIExZdAfBidjejIEtFaa
- oHNLJQ14fVLjBj4bo5PfcGa8CuhEjMP9AvRrI+VVTG3/6TQ9OSU66AGb/jO9IOcJmvLAOWKmGRGX
- WjG8Df1AK5spLb7RGl5LWv8R/vXLFl36GmgsZaxKFLqxOsedOWkx9ZMPJXJObtzPIWrXci6cJuj8
- KWxiKy4QzAVoj4HHE5h0KeipRyo30/GWZojPoCw9k2Zd8LLgDEXZzehUqRyoXCZ7mhu3qvSAbidA
- KwijuptRVh1BJukxK78WCK+/Gk4qZLIJo9Vu5xqpHLagTRLtdlEctB9tlaFQUq9GfwpDMVv6767L
- lEI3wSyUtFkSYQVNiBPsBajGhWMVjsA1tb23HcjE9ah6tfv88Tqmr9SrlpnKa3f7O48o6AFIpfMk
- s7Y074OAGuzu5jbVVEhXOG3G32LLxRZwcU3/SwGYrfxLrg4qOKH9t6U8PII8Ca2kAzwYKnmqzrge
- 9PKb+yopvlbQBh/bCIIFdg+dbNZst4n2nLE1W++32/X2bg93UbhmsIOUYVhmj7YNS0NJsS/9rlxq
- N78bTgY0txn6AjdWeZTqWcbBgNaAOKTCXvnNZ8uqNKYE5vehyt3ON0C95PTTyS2wguZX6IDWNdiL
- VvkA0RHawBhTYX/G+SqPV8yIOu73ak8cl0rmFvMP7sYpo3OV4hWru/j19iutAZ1AFooYfpwptp7f
- ToJxsbVvC5IJzEx9Ge0a/aSuEYCCWk+7CsWVGxlF+cY1vsf3EtpXTNdQxw+bGjH3NmkS1GBGaZUJ
- W9IqP2LV1pRev8FiZBR2NEhoKVCPKb2xMpia+e8t375m+fQ59wNY3VPahGgmQk7962WVGqZFObt+
- Dvh9/66XX1LiuqM4wQ2POAd6Ot4LJKqlrReLKr+4x41FghPQszlzYep68/KgkaK6VjXTi+deZtg9
- p7qNheJe6t7haNdMtfb8ZjLi21rCVCrG/ORG+R5gbgi7a9UzaaI54aIb0kqb5mnAweLjtFsoxyx/
- bAbvCv/1Y8zkr4c3wuHsHIBzSfvVcI8gzFTcaX0CK8Y8zwaMyIztzvKysuBLjXagEiFxSa3qn/US
- 0XTTL66bxsEcaLzmDQwdb4PDTW8W9H1Z9W74PVn9AmkzXB0IlpfLO0DV92rssVHzSG7+AQAA//8D
- AH0z8TzVEgAA
- headers:
- cache-control: ['max-age=0, private, must-revalidate']
- content-encoding: [gzip]
- content-type: [application/xml; charset=utf-8]
- etag: ['"12313a8ebd959c719e331fe5e9bc8de9"']
- strict-transport-security: [max-age=31536000, max-age=31536000; includeSubDomains]
- transfer-encoding: [chunked]
- vary: [Accept-Encoding]
- status: {code: 200, message: OK}
-version: 1
diff --git a/tests/py/fixtures/TestsWithBillingHarness.yml b/tests/py/fixtures/TestsWithBillingHarness.yml
new file mode 100644
index 0000000000..1708446ed0
--- /dev/null
+++ b/tests/py/fixtures/TestsWithBillingHarness.yml
@@ -0,0 +1,1277 @@
+interactions:
+- request:
+ body: !!python/unicode bkhpqm20.9111443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIACt7yFcAA9xYTW/jNhC951cEvjOSbCfrLBQtihYFCrSLArtbFL0sKGpsMZZIhaQcO7++Q1GS
+ JYtK0kOBojdr5nHIGc7Ho+NPx7K4PoDSXIqHRXQTLq5BMJlxsXtYfPv6M9ksPiVXsVFUaMoMopKr
+ 6+uYZ8mO6nJJn27jAD+sTBtqap3Q2uRS8RfI4qAVWa05VZBoWkAcND+tjNVK4W4nwrUkuCkk3778
+ FAdTsQXTUtbCJMvw5j6Kg/bLKkpQLKfCEMqYFRI8jzbp/X794eUlfVyqu9vHOPChmlPXKfHorgUv
+ HhZG1bAI3C5UG1DvgkqVIdKjYAqogYxQc21j8LDI8NPwEhboVnRHwnsSRl+j+4/h8mO4+gsj0S9o
+ 1tdV9s/Wnxe08dZGogf2w11iFK3Xq9vlurtElG650oYIWsLl+VFZ0Hkdk2VFxcmjgZLywiN/hlRz
+ 47NV5VL45Ft6nEQ1GLoVp7woMHnPLq6f/13ntFEAmA9ZpkBrn/dHAyKztzALKSSjBTc+8wp2WHS+
+ EEmsrsLVx/06Cj/EwVDUHRtzVJ3mvXJqu4LQosrp8l2o1VsoUeN9cDa9q8H1oGvbWmS+Quk1uk10
+ qhQ9jZQYz0FT8hmpqDIcw6HBmAJKwGIdr/AZP3evt8wPzKbUsNyLyXlVDbPRl9L/y5R8JUH+M7k4
+ vJ22N5IthyLTnT82gxivqBsXS6ywsWTQfgYrY3rQBJSSimBwKyk0eGPS4AYxG6OT33DKvQroTIyv
+ +wL0i7PyKqbx/3CYrpwKLXSHM+WZnlDzCK48cEzpaUbElZIMd8M4dGVFG3hj6cffP//56x2G9DXQ
+ 2Mr4KFEYhsPl04N6dAZTP/mhQs3BEpQ5RBPaLOP2JBj8KWzi60FyZi9oixePKzDpUlDTiNSWPuAu
+ jiPMoAw9EkdwvCo4Qll1FCCVsgAqFsmWFtqSqx7QUQ70gjCquhFo5B5Eku7z6qlEePPlNCkXyTqM
+ lpuN7dNi2ILWSbTZIO1qP9oqQ6OkIXN/cE0xW/rvrstUXLnLLKUweRJhBU2EE+wJqEI+swxH4Eba
+ 7tvOe2J7VENJv305s4Cz9HzKXBZNuP2dh5d0B6RWRZIbU+mPQUA1dnd9kyrKhS2cNuNvsOViCzjZ
+ pv+9BMzW7HshdzI4oP83ldh9AnHgSgoLeNBUZKk8Ivvo7bdtRUFFsXt8ljYB3W+nyYEWJscTIxMW
+ eyGfRRwMZA6UQcrNWe8+W1Wt8OIwC3d1YYnfAHWp6WeIZbQ4Js/QgaxrgycliwGiE7Th07rGLopT
+ UOzPmJF03JXlllgtFQwSu91U2sVJZjVrGu1567PMgWrBn2poKwnFGHmOrVgl6xXbrKNtxtiKrbZ3
+ d6u72y3cRuGKwQZShjk+u9RZPoAoJdHZfqbSen07BsaV1j6HSM4xLdVpRDX6Md0gAA21F2jLE+k8
+ KsrqnRS/x/cWXn2HNYi5p5QLqMYIKJlzU9G62GPJNpL+fANWpCW2M0hoxfEcU7nzMrh0s5e0oXGN
+ saB+llWnmilezbKwgb5vYw3FJBVOfZkRJDrEBtFT+BdIPJYyXiwe+WIfOx0IDgIPhcy4bnLaqwNn
+ RXZJNtOS5t4/2ESmZxsbRXpmH9Do10ze9no3IPA1K2BqFe/8YCfaFmBuFtlt5TNxtznRYhjSWmnH
+ kDMw+ATseNVY5b+bAb32bz/GTP4zeCccjjYA2J6V/xj2qYGZitTOZ7BmzMOe8UZmfLeeV7UBX2q0
+ c4VwgVytds8VO0tdX/lu+0oczIHGbGfg6JgUDQnPLOhtWw1FestWz6NMjhOUYHnZvAM8+laOIzZq
+ HsnV3wAAAP//AwBh4NRclBIAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"2dc34c5897440990527670f9bb4258ec"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 10.0
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/gasm2aq5/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIACx7yFcAA9xY32/bNhB+718R+J2RZDupUygqhg0DBmzFgLbDsJeAok4Wa4lUScqx+9f3KEqy
+ FFFJgGHDsDfr7uORd7wfHx2/P1Xl1RGU5lLcr6LrcHUFgsmMi/396vOnn8lu9T55ExtFhabMICp5
+ c3UV8yzZU12t6debOMAPK9OGmkYnukkrbgxkD7lUDxqMKaECYeKgA1isOdeQaFpCHLQ/rYw1SuHe
+ Z8K1JHgESD5//CkO5mILppVshEmi8DoM46D7sooKFCuoMIQyZoUET6dNenfYvv32Lf2yVrc3X+LA
+ h2p9aFLi0V0JXt6vjGpgFbhdqDagXgWVKkOkR8EUUAwToebKxuB+leGn4RWsknUY3ZLwjoTRp+ju
+ Xbh+F27+wkgMC9r1TZ29fv0W118WdPHWRqIH9sNdaRRtt5ub9ba/UpTmXGlDBK3g6flRWdJlHZNV
+ TcXZo4GK8tIjf4RUc+OzVRdS+OQ5Pc2iGozdilNelpjKFxe3j/+sc9ooAMyHLFOgtc/7kwGR2VtY
+ hJSS0ZIbn3kFeyxBX4gkVlfp6uNuG4Vv42As6o+NOarOy145tV1BaFkXdP0q1OYllGjwPjib39Xo
+ etC1vBGZr1AGje4SnSpFzxMlxnPUonxGaqoMx3BcGtKTFT7jtDGFVPzby+ZHZlNqWOHFFLyux9no
+ S+n/ZUo+kyD/mVwc307XG0nOocx074/NIMZr6sbFGitsKhm1n9HKmB41AaWkIhjcWgoN3pi0uFHM
+ pujkN5xyzwJ6E9PrfgL6xVl5FtP6fzzOV86FFrrHmfJIz6j5Aq48cEzpeUbEtZIMd8M49GVFW3hr
+ 6cffP/z56y2G9DnQ1Mr0KFFoicCSdmGlwdRPfqhRc4TMu7pFtKHNMm5PgsGfw2a+HiVn9oJyvHhc
+ gUmXgppHpLH0AXdxHGEBZeiJOILjVcEJqrqnAKmUJVCxSnJaakuuBkBPOdALwqjqR6CRBxBJeijq
+ rxXC2y+nSblItmG03u1snxbjFrRNot0uioPuo6syNEpaMvcH1xSzZfjuu0zNlbvMSgpTJBFW0Ew4
+ w56BKuQz63ACbqXdvt28J7ZHtQT188cLC7hIL6csZNmG2995eEX3QBpVJoUxtX4XBFRjd9fXqaJc
+ 2MLpMv4aWy62gLNt+g8VYLZmD6Xcy+CI/l/XYv8exJErKSzgXlORpfKE7GOw37UVBTXF7vFB2gR0
+ v52mAFqaAk+MTFgchHwUcTCSOVAGKTcXvfvsVI3Ci8Ms3DelJX4j1FPNMEMso8UxeYGOZH0bPCtZ
+ jhC9oAuf1g12UZyC4nDBTKTTrixzYrVUMEjsdnNpHyeZNaxttJetLzIHagT/2kBXSSjGyHNsxSrZ
+ bthuG+UZYxu2yW9vN7c3OdxE4YbBDlKGOb641Fk+gqgk0dlhodIGfTcGppXWPY5IwTEt1XlCNYYx
+ 3SIADXUXaMsT6TwqqvqVT4QBP1joHl0XJjN+h7WI7vG0Dq/vovFTygVUYwSULLipaVMesGRbyXC+
+ ESvSEtsZJLTmeI653HkZzN38+55vn/P8Ne/RcRxmT8p/Jw6DpEsRNyBK6mebTaqZ4vUiGx3ph3be
+ Um1SI/uRGUHCR2xIPQ3wCRKPpYwXi0d+so+dkgQHoodKZ1y3te3VgbMi+2JbaM1L70BspvOzTY0i
+ TbV/JKBfC/U76N2gxFe9gLlVvPOjnew5wNJMttvKR+Juc6bFMKSN0u6lkIHBp3DPL6cq/92Mnhn+
+ 7aeY2X8nr4TDyQYAx5TyH8M+uTBTkeL6DDaMeV4ReCMLvlvP68aALzW6+Uq4QM7auGeb5RSuvz7Y
+ /hoHS6Ap6xs5OiWHY+K3CHrZVksVX7I18ElTIJMgWF427wCPnstpxCbNI3nzHQAA//8DANVZWgSq
+ EwAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"fe05b6b44b808da852f780ad3cdfa8ef"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/gasm2aq5/void
+ response:
+ body:
+ string: !!binary |
+ H4sIAC17yFcAA9xY227jNhB9368I/M5I8iXrLBQFRYsCBdpFgd0tir4EFDW2GEuklqQce7++Q1GS
+ pYhKAhQFtn2zZg6HnOFcDh3fn8ri6ghKcynuFtF1uLgCwWTGxf5u8eXzz2S7uE/exUZRoSkziEre
+ XV3FPEv2VJdL+nUTB/hhZdpQU+vkKHkGWRy0n1ZjzhUkmhYQB81PK2O1UrjTmXAtCW4IyZdPP8XB
+ VGzBtJS1MEkUXodhHLRfVlGCYjkVhlDGrJDgWbRJbw/r99++pY9LdbN5jAMfqjlxnRKP7krw4m5h
+ VA2LwO1CtQH1JqhUGSI9CqaAGsgINVc2BneLDD8NL2GRLMPohoS3JIw+R7cfwuWHcPUXRqJf0Kyv
+ q+zt6ze4/rKgjbc2Ej2wH+4Co2i9Xm2W6+4CUbrjShsiaAnPz4/Kgs7rmCwrKs4eDZSUFx75E6Sa
+ G5+tKpfCJ9/R0ySqwdCtOOVFgYl7cXH99O86p40CwHzIMgVa+7w/GRCZvYVZSCEZLbjxmVewx4Lz
+ hUhidRWuPm7XUfg+Doai7tiYo+o875VT2xWEFlVOl29CrV5DiRrvg7PpXQ2uB13b1SLzFUqv0W2i
+ U6XoeaTEeA4aks9IRZXhGA4NxhRQAhbreIXPOK1NLhX/9rr5gdmUGpZ7MTmvqmE2+lL6f5mSLyTI
+ d5OLw9tpeyPZcSgy3fljM4jxirpxscQKG0sG7WewMqZHTUApqQgGt5JCgzcmDW4QszE6+Q2n3IuA
+ zsT4up+BfnFWXsQ0/h+P05VToYXucaY80TNqHsGVB44pPc2IuFKS4W4Yh66saANvLP34+8c/f73B
+ kL4EGlsZHyUKLRGY086sNJj6yQ8Vao6WoMwhmtBmGbcnweBPYRNfkfIwe0E7vHhcgUmXgppGpLb0
+ AXdxHGEGZeiJOILjVcEJyqqjAKmUBVCxSHa00JZc9YCOcqAXhFHVjUAjDyCS9JBXX0uEN19Ok3KR
+ rMNoud3aPi2GLWidRNttFAftR1tlaJQ0ZO4PrilmS//ddZmKK3eZpRQmTyKsoIlwgj0DVchnluEI
+ 3Ejbfdt5T2yPaujol08XFnCRXk6Zy6IJt7/z8JLugdSqSHJjKv0hCKjG7q6vU0W5sIXTZvw1tlxs
+ AWfb9B9KwGzNHgq5l8ER/b+uxP4exJErKSzgTlORpfKE7KO337YVBRXF7vFR2gR0v50mB1qYHE+M
+ TFgchHwScTCQOVAGKTcXvftsVbXCi8Ms3NeFJX4D1HNNP0Mso8UxeYEOZF0bPCtZDBCdoA2f1jV2
+ UZyC4nDBjKTjrix3xGqpYJDY7abSLk4yq1nTaC9bX2QOVAv+tYa2klCMkefYilWyXrHtOtpljK3Y
+ andzs7rZ7GAThSsGW0gZ5vjsUmf5CKKURGeHmUrr9e0YGFda+xQiOce0VOcR1ejHdIMANNReoC1P
+ pPOoKKs3PhF6fG+hfXRdmMzwHdYg2sfTMry+jYZPKRdQjRFQMuemonVxwJJtJP35BqxIS2xnkNCK
+ 4zmmcudlMHXzn3u+fslzfNKV3GCSP+ykerjwtLk4TJ6U/504bF6Kw/QV/h143UvawnBjsaB+jl2n
+ milezXLwgb4fYs0Dg1TI+WRGkOYSG0BP23+GxGMp48XikZ/tY7kBQRrgeUBkXDcdzasDZ0V2LWZm
+ IM29fnGETM82Nork3P59gn7NdK1e7+hBToWAqVW886PlMzuAOSZit5VPxN3mRIthSGul3fsoA0N5
+ 0bHqscp/N4PHlX/7MWbyj9Eb4XCyAcDhrPzHsA9NzFQk9j6DNWOetxPeyIzv1vOqNuBLjZZVEC6Q
+ qdfusWqZlJsqD3aqxMEcaMx1B46OKfGQ7s6CXrfVEOTXbPUs2uTInwiWl807wKPv5Dhio+aRvPsb
+ AAD//wMA2f6GcY4UAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"e52ee2865e5f5ed87d18678b7e01775b"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm20.9111443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAC57yFcAA9xYTW/jNhC9768IfGck2U7iBIqCAkWBFmiBdjct0EtAUWOLsURqScqx99fvUJRk
+ KaKS9FCg6M2aeRxyhvPx6PjhWBYXB1CaS3G/iC7DxQUIJjMudveLxy8/kc3iIfkUG0WFpswgKvl0
+ cRHzLMlP0e4mulrFAX5YmTbU1Dqhtcml4t8gi4NWZLXmVEGiaQFx0Py0MlYrhbudCNeS4KaQPH7+
+ MQ6mYgumpayFSZbh5W0UB+2XVZSgWE6FIZQxKyR4Hm3S2/365tu39Hmprq+e48CHak5dp8SjuxC8
+ uF8YVcMicLtQbUB9CCpVhkiPgimgBjJCzYWNwf0iw0/DS1igW9E1CW9JGH2Jbu/C5V14/TdGol/Q
+ rK+r7J+tPy9o462NRA/sh7vEKFqvV1fLdXeJKN1ypQ0RtITX50dlQed1TJYVFSePBkrKC4/8BVLN
+ jc9WlUvhk2/pcRLVYOhWnPKiwOQ9u7h++Xed00YBYD5kmQKtfd4fDYjM3sIspJCMFtz4zCvYYdH5
+ QiSxugpXH7frKLyJg6GoOzbmqDrNe+XUdgWhRZXT5YdQq/dQosb74Gx6V4PrQde2tch8hdJrdJvo
+ VCl6GikxnoOm5DNSUWU4hkODMQWUgMU6XuEzfu5e75kfmE2pYbkXk/OqGmajL6X/lyn5RoL8Z3Jx
+ eDttbyRbDkWmO39sBjFeUTcullhhY8mg/QxWxvSgCSglFcHgVlJo8MakwQ1iNkYnv+KUexPQmRhf
+ 9yvQz87Km5jG/8NhunIqtNAdzpQXekLNM7jywDGlpxkRV0oy3A3j0JUVbeCNpd9/+euPEAfPm6Cx
+ lfFRojAMh8unB/XoDKZ+8kOFmoMlKHOIJrRZxu1JMPhT2MTXg+TMXtAWLx5XYNKloKYRqS19wF0c
+ R5hBGXokjuB4VXCEsuooQCplAVQski0ttCVXPaCjHOgFYVR1I9DIPYgk3efV1xLhzZfTpFwk6zBa
+ bja2T4thC1on0WaDtKv9aKsMjZKGzP3JNcVs6b+7LlNx5S6zlMLkSYQVNBFOsCegCvnMMhyBG2m7
+ bzvvie1RDSV9/HxmAWfp+ZS5LJpw+zsPL+kOSK2KJDem0ndBQDV2d32ZKsqFLZw24y+x5WILONmm
+ /1QCZmv2VMidDA7o/2Uldg8gDlxJYQH3mooslUdkH739tq0oqCh2j9+kTUD322lyoIXJ8cTIhMVe
+ yBcRBwOZA2WQcnPWu89WVSu8OMzCXV1Y4jdAvdb0M8QyWhyTZ+hA1rXBk5LFANEJ2vBpXWMXxSko
+ 9mfMSDruynJLrJYKBondbirt4iSzmjWN9rz1WeZAteBfa2grCcUYeY6tWCXrFduso23G2IqtttfX
+ q+urLVxF4YrBBlKGOT671Fk+gCgl0dl+ptJ6fTsGxpXWPodIzjEt1WlENfox3SAADbUXaMsT6Twq
+ yuqDFL/H9xbefIc1iLmnlAuoxggomXNT0brYY8k2kv58A1akJbYzSGjF8RxTufMyeO1mL2lD4xpj
+ Qf0sq041U7yaZWEDfd/GGopJKpz6MiNIdIgNoqfwXyHxWMp4sXjkV/vY6UBwEHgoZMZ1k9NeHTgr
+ skuymZY09/7BJjI929go0jP7gEa/ZvK217sBga9ZAVOreOcHO9G2AHOzyG4rX4i7zYkWw5DWSjuG
+ nIHBJ2DHq8Yq/90M6LV/+zFm8p/BB+FwtAHA9qz8x7BPDcxUpHY+gzVjHvaMNzLju/W8qg34UqOd
+ K4QL5Gq1e67YWer6ypPtK3EwBxqznYGjY1I0JDyzoPdtNRTpPVs9jzI5TlCC5WXzDvDoWzmO2Kh5
+ JJ++AwAA//8DAMSHos2UEgAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"2d8456294e3829ad412b1c378d80d18f"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 20.91
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/hy1g7153/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIAC97yFcAA9xY32/bNhB+718R+J2RZDuJUygqBgwDNmADtrYbsJeAok4Wa4lUScqx+9fvKEqy
+ FFFJgGFAsTfr7uORd7wfHx1/OFXl1RGU5lI8rKLrcHUFgsmMi/3D6vOnn8hu9SF5FxtFhabMICp5
+ d3UV8ywpztH+LrrZxAF+WJk21DQ60U1acWMge8yletRgTAkVCBMHHcBizbmGRNMS4qD9aWWsUQr3
+ PhOuJcEjQPL5449xMBdbMK1kI0yyDq/vozjovqyiAsUKKgyhjFkhwdNpk94ftnffvqVf1ur25ksc
+ +FCtD01KPLorwcuHlVENrAK3C9UG1JugUmWI9CiYAophItRc2Rg8rDL8NLyCFboV3ZLwnoTRp+j+
+ fbh+H97+jZEYFrTrmzp7+/o7XH9Z0MVbG4ke2A93pVG03W5u1tv+SlGac6UNEbSC5+dHZUmXdUxW
+ NRVnjwYqykuP/AlSzY3PVl1I4ZPn9DSLajB2K055WWIqX1zcPv23zmmjADAfskyB1j7vTwZEZm9h
+ EVJKRktufOYV7LEEfSGSWF2lq4/7bRTexcFY1B8bc1Sdl71yaruC0LIu6PpNqM1rKNHgfXA2v6vR
+ 9aBreSMyX6EMGt0lOlWKnidKjOeoRfmM1FQZjuG4NKRnK3zGaWMKqfi3182PzKbUsMKLKXhdj7PR
+ l9L/y5R8IUG+m1wc307XG0nOocx074/NIMZr6sbFGitsKhm1n9HKmB41AaWkIhjcWgoN3pi0uFHM
+ pujkV5xyLwJ6E9Prfgb62Vl5EdP6fzzOV86FFrrHmfJEz6j5Aq48cEzpeUbEtZIMd8M49GVFW3hr
+ 6fdf/vojxMHzImhqZXqUKAzD8fL5QT06g6mf/FCj5giZd3WLaEObZdyeBIM/h818PUrO7AXlePG4
+ ApMuBTWPSGPpA+7iOMICytATcQTHq4ITVHVPAVIpS6BileS01JZcDYCecqAXhFHVj0AjDyCS9FDU
+ XyuEt19Ok3KRbMNovdvZPi3GLWibRLsd0q7uo6syNEpaMvcn1xSzZfjuu0zNlbvMSgpTJBFW0Ew4
+ w56BKuQz63ACbqXdvt28J7ZHtQT188cLC7hIL6csZNmG2995eEX3QBpVJoUxtX4fBFRjd9fXqaJc
+ 2MLpMv4aWy62gLNt+o8VYLZmj6Xcy+CI/l/XYv8BxJErKSzgQVORpfKE7GOw37UVBTXF7vGbtAno
+ fjtNAbQ0BZ4YmbA4CPkk4mAkc6AMUm4uevfZqRqFF4dZuG9KS/xGqOeaYYZYRotj8gIdyfo2eFay
+ HCF6QRc+rRvsojgFxeGCmUinXVnmxGqpYJDY7ebSPk4ya1jbaC9bX2QO1Aj+tYGuklCMkefYilWy
+ 3bDdNsozxjZsk9/ebm5vcriJwg2DHaQMc3xxqbN8BFFJorPDQqUN+m4MTCutexyRgmNaqvOEagxj
+ ukUAGuou0JYn0nlUVPUbnwgDfrDQPbouTGb8DmsRS08pF1CNEVCy4KamTXnAkm0lw/lGrEhLbGeQ
+ 0JrjOeZy52Uwd/Pfe373kudveY9+B3EYJF2KuAFRUj/bbFLNFK8X2ehIP7TzlmqTGtmPzAgSPmJD
+ 6mmAz5B4LGW8WDzys33slCQ4ED1UOuO6rW2vDpwV2RfbQmteegdiM52fbWoUaar9IwH9WqjfQe8G
+ Jb7qBcyt4p0f7WTPAZZmst1WPhF3mzMthiFtlHYvhQwMPoV7fjlV+e9m9Mzwbz/FzP47eSMcTjYA
+ OKaU/xj2yYWZihTXZ7BhzPOKwBtZ8N16XjcGfKnRzVfCBXLWxj3bLKdw/fXR9tc4WAJNWd/I0Sk5
+ HBO/RdDrtlqq+JqtgU+aApkEwfKyeQd49FxOIzZpHsm7fwAAAP//AwAgC399qhMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d6537aaac807f989bce762d4e30c0014"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: null
+ headers: {}
+ method: GET
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/hy1g7153
+ response:
+ body:
+ string: !!binary |
+ H4sIADB7yFcAA9xY32/bNhB+718R+J2RZDuJUygqBgwDNmADtrYbsJeAok4Wa4lUScqx+9fvKEqy
+ FFFJgGFAsTfr7uORd7wfHx1/OFXl1RGU5lI8rKLrcHUFgsmMi/3D6vOnn8hu9SF5FxtFhabMICp5
+ d3UV8ywpztH+LrrZxAF+WJk21DQ60U1acWMge8yletRgTAkVCBMHHcBizbmGRNMS4qD9aWWsUQr3
+ PhOuJcEjQPL5449xMBdbMK1kI0yyDq/vozjovqyiAsUKKgyhjFkhwdNpk94ftnffvqVf1ur25ksc
+ +FCtD01KPLorwcuHlVENrAK3C9UG1JugUmWI9CiYAophItRc2Rg8rDL8NLyCFboV3ZLwnoTRp+j+
+ fbh+H97+jZEYFrTrmzp7+/o7XH9Z0MVbG4ke2A93pVG03W5u1tv+SlGac6UNEbSC5+dHZUmXdUxW
+ NRVnjwYqykuP/AlSzY3PVl1I4ZPn9DSLajB2K055WWIqX1zcPv23zmmjADAfskyB1j7vTwZEZm9h
+ EVJKRktufOYV7LEEfSGSWF2lq4/7bRTexcFY1B8bc1Sdl71yaruC0LIu6PpNqM1rKNHgfXA2v6vR
+ 9aBreSMyX6EMGt0lOlWKnidKjOeoRfmM1FQZjuG4NKRnK3zGaWMKqfi3182PzKbUsMKLKXhdj7PR
+ l9L/y5R8IUG+m1wc307XG0nOocx074/NIMZr6sbFGitsKhm1n9HKmB41AaWkIhjcWgoN3pi0uFHM
+ pujkV5xyLwJ6E9Prfgb62Vl5EdP6fzzOV86FFrrHmfJEz6j5Aq48cEzpeUbEtZIMd8M49GVFW3hr
+ 6fdf/vojxMHzImhqZXqUKAzD8fL5QT06g6mf/FCj5giZd3WLaEObZdyeBIM/h818PUrO7AXlePG4
+ ApMuBTWPSGPpA+7iOMICytATcQTHq4ITVHVPAVIpS6BileS01JZcDYCecqAXhFHVj0AjDyCS9FDU
+ XyuEt19Ok3KRbMNovdvZPi3GLWibRLsd0q7uo6syNEpaMvcn1xSzZfjuu0zNlbvMSgpTJBFW0Ew4
+ w56BKuQz63ACbqXdvt28J7ZHtQT188cLC7hIL6csZNmG2995eEX3QBpVJoUxtX4fBFRjd9fXqaJc
+ 2MLpMv4aWy62gLNt+o8VYLZmj6Xcy+CI/l/XYv8BxJErKSzgQVORpfKE7GOw37UVBTXF7vGbtAno
+ fjtNAbQ0BZ4YmbA4CPkk4mAkc6AMUm4uevfZqRqFF4dZuG9KS/xGqOeaYYZYRotj8gIdyfo2eFay
+ HCF6QRc+rRvsojgFxeGCmUinXVnmxGqpYJDY7ebSPk4ya1jbaC9bX2QO1Aj+tYGuklCMkefYilWy
+ 3bDdNsozxjZsk9/ebm5vcriJwg2DHaQMc3xxqbN8BFFJorPDQqUN+m4MTCutexyRgmNaqvOEagxj
+ ukUAGuou0JYn0nlUVPUbnwgDfrDQPbouTGb8DmsRS08pF1CNEVCy4KamTXnAkm0lw/lGrEhLbGeQ
+ 0JrjOeZy52Uwd/Pfe373kudveY9+B3EYJF2KuAFRUj/bbFLNFK8X2ehIP7TzlmqTGtmPzAgSPmJD
+ 6mmAz5B4LGW8WDzys33slCQ4ED1UOuO6rW2vDpwV2RfbQmteegdiM52fbWoUaar9IwH9WqjfQe8G
+ Jb7qBcyt4p0f7WTPAZZmst1WPhF3mzMthiFtlHYvhQwMPoV7fjlV+e9m9Mzwbz/FzP47eSMcTjYA
+ OKaU/xj2yYWZihTXZ7BhzPOKwBtZ8N16XjcGfKnRzVfCBXLWxj3bLKdw/fXR9tc4WAJNWd/I0Sk5
+ HBO/RdDrtlqq+JqtgU+aApkEwfKyeQd49FxOIzZpHsm7fwAAAP//AwAgC399qhMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"0fd7a8bcec08df22a1e6a2a1577cd8ec"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/hy1g7153/void
+ response:
+ body:
+ string: !!binary |
+ H4sIADB7yFcAA9xY32/bNhB+718R+J2RZDuJUygqBgwDNmADtrUbsJeAok4Wa4lUScqx+9fvKEqy
+ FFFJgGFA0Tfr7uORd7wfHx1/OFXl1RGU5lI8rKLrcHUFgsmMi/3D6tPHn8hu9SF5FxtFhabMICp5
+ d3UV8ywpztH+LrrZxAF+WJk21DQ6OUqeQRYH3afVmHMNiaYlxEH708pYoxTudCZcS4IbQvLpzx/j
+ YC62YFrJRphkHV7fR3HQfVlFBYoVVBhCGbNCgmfRJr0/bO++fk0/r9Xtzec48KHaEzcp8eiuBC8f
+ VkY1sArcLlQbUG+CSpUh0qNgCqiBjFBzZWPwsMrw0/AKVuhWdEvCexJGH6P79+H6fXj7D0ZiWNCu
+ b+rs7et3uP6yoIu3NhI9sB/uAqNou93crLf9BaI050obImgFz8+PypIu65isairOHg1UlJce+ROk
+ mhufrbqQwifP6WkW1WDsVpzyssTEvbi4ffp/ndNGAWA+ZJkCrX3enwyIzN7CIqSUjJbc+Mwr2GPB
+ +UIksbpKVx/32yi8i4OxqD825qg6L3vl1HYFoWVd0PWbUJvXUKLB++Bsflej60HX8kZkvkIZNLpL
+ dKoUPU+UGM9RQ/IZqakyHMOhwZgSKsBina7wGaeNKaTiX183PzKbUsMKL6bgdT3ORl9Kf5cp+UKC
+ fDO5OL6drjeSnEOZ6d4fm0GM19SNizVW2FQyaj+jlTE9agJKSUUwuLUUGrwxaXGjmE3Rya845V4E
+ 9Cam1/0M9LOz8iKm9f94nK+cCy10jzPliZ5R8xlceeCY0vOMiGslGe6GcejLirbw1tLvv/z9R4iD
+ 50XQ1Mr0KFEYhuPl84N6dAZTP/mhRs3REpQlRBvaLOP2JBj8OWzmK1IeZi8ox4vHFZh0Kah5RBpL
+ H3AXxxEWUIaeiCM4XhWcoKp7CpBKWQIVqySnpbbkagD0lAO9IIyqfgQaeQCRpIei/lIhvP1ympSL
+ ZBtG693O9mkxbkHbJNrtkHZ1H12VoVHSkrm/uKaYLcN332VqrtxlVlKYIomwgmbCGfYMVCGfWYcT
+ cCvt9u3mPbE9qqWjn/68sICL9HLKQpZtuP2dh1d0D6RRZVIYU+v3QUA1dnd9nSrKhS2cLuOvseVi
+ Czjbpv9YAWZr9ljKvQyO6P91LfYfQBy5ksICHjQVWSpPyD4G+11bUVBT7B6/SZuA7rfTFEBLU+CJ
+ kQmLg5BPIg5GMgfKIOXmonefnapReHGYhfumtMRvhHquGWaIZbQ4Ji/Qkaxvg2clyxGiF3Th07rB
+ LopTUBwumIl02pVlTqyWCgaJ3W4u7eMks4a1jfay9UXmQI3gXxroKgnFGHmOrVgl2w3bbaM8Y2zD
+ Nvnt7eb2JoebKNww2EHKMMcXlzrLRxCVJDo7LFTaoO/GwLTSuqcQKTimpTpPqMYwplsEoKHuAm15
+ Ip1HRVW/8Ykw4AcL3aPrwmTG77AWsfSUcgHVGAElC25q2pQHLNlWMpxvxIq0xHYGCa05nmMud14G
+ czf/u+d3L3mOT7qKG0zyx1yqxwtP+w7jsHspDvNX+Dfg9SDpCsONxZL6OXaTaqZ4vcjBR/phiLUP
+ DFIj55MZQZpLbAA9bf8ZEo+ljBeLR362j+UGBGmA5wGRcd12NK8OnBXZt5iFgbT0+sURMj/b1CiS
+ c/v3Cfq10LUGvaMHBRUC5lbxzo+Wz+QAS0zEbiufiLvNmRbDkDZKu/dRBobysmfVU5X/bkaPK//2
+ U8zsH6M3wuFkA4DDWfmPYR+amKlI7H0GG8Y8bye8kQXfred1Y8CXGh2rIFwgU2/cY9UyKTdVHu1U
+ iYMl0JTrjhydUuIx3V0EvW6rJciv2RpYtCmQPxEsL5t3gEfP5TRik+aRvPsXAAD//wMA8uGxhI4U
+ AAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"dac56a35e6d1afad75efd5c91b547466"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm20.9111443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIADF7yFcAA9xYTW/jNhC9768IfGck2U7WDhQtChSLtkB72c0W6GVBUWOLsURqScqx8+s7FCVZ
+ iqgkPRQoerNmHoec4Xw8Ov50KourIyjNpbhfRNfh4goEkxkX+/vFw9fPZLP4lHyIjaJCU2YQlXy4
+ uop5lmTsMRX58yEO8MPKtKGm1gmtTS4Vf4YsDlqR1ZpzBYmmBcRB89PKWK0U7nYmXEuCm0Ly8OXn
+ OJiKLZiWshYmWYbX2ygO2i+rKEGxnApDKGNWSPA82qTbw/rj83P6uFS3N49x4EM1p65T4tFdCV7c
+ L4yqYRG4Xag2oN4FlSpDpEfBFFADGaHmysbgfpHhp+ElLNCt6JaEWxJGX6PtXbi8C7d/YST6Bc36
+ usr+2frLgjbe2kj0wH64S4yi9Xp1s1x3l4jSHVfaEEFLeHl+VBZ0XsdkWVFx9migpLzwyJ8g1dz4
+ bFW5FD75jp4mUQ2GbsUpLwpM3ouL66d/1zltFADmQ5Yp0Nrn/cmAyOwtzEIKyWjBjc+8gj0WnS9E
+ EqurcPWxXUfhxzgYirpjY46q87xXTm1XEFpUOV2+C7V6CyVqvA/Opnc1uB50bVeLzFcovUa3iU6V
+ oueREuM5aEo+IxVVhmM4NBhTQAlYrOMVPuOX7vWW+YHZlBqWezE5r6phNvpS+n+Zkq8kyH8mF4e3
+ 0/ZGsuNQZLrzx2YQ4xV142KJFTaWDNrPYGVMj5qAUlIRDG4lhQZvTBrcIGZjdPI7TrlXAZ2J8XW/
+ AP3qrLyKafw/Hqcrp0IL3eNMeaJn1DyCKw8cU3qaEXGlJMPdMA5dWdEG3lj67cvnmz9/wZC+Bhpb
+ GR8lCsNwuHx6UI/OYOonP1WoOVqCModoQptl3J4Egz+FTXw9Ss7sBe3w4nEFJl0KahqR2tIH3MVx
+ hBmUoSfiCI5XBScoq44CpFIWQMUi2dFCW3LVAzrKgV4QRlU3Ao08gEjSQ179KBHefDlNykWyDqPl
+ ZmP7tBi2oHUSbTZIu9qPtsrQKGnI3DeuKWZL/911mYord5mlFCZPIqygiXCCPQNVyGeW4QjcSNt9
+ 23lPbI9qKOnDlwsLuEgvp8xl0YTb33l4SfdAalUkuTGVvgsCqrG76+tUUS5s4bQZf40tF1vA2Tb9
+ 7yVgtmbfC7mXwRH9v67E/hOII1dSWMC9piJL5QnZR2+/bSsKKord4w9pE9D9dpocaGFyPDEyYXEQ
+ 8knEwUDmQBmk3Fz07rNV1QovDrNwXxeW+A1QLzX9DLGMFsfkBTqQdW3wrGQxQHSCNnxa19hFcQqK
+ wwUzko67stwRq6WCQWK3m0q7OMmsZk2jvWx9kTlQLfiPGtpKQjFGnmMrVsl6xTbraJcxtmKr3e3t
+ 6vZmBzdRuGKwgZRhjs8udZaPIEpJdHaYqbRe346BcaW1zyGSc0xLdR5RjX5MNwhAQ+0F2vJEOo+K
+ snonxe/xvYVX32ENYu4p5QKqMQJK5txUtC4OWLKNpD/fgBVpie0MElpxPMdU7rwMXrrZS9rQuMZY
+ UD/LqlPNFK9mWdhA37exhmKSCqe+zAgSHWKD6Cn8F0g8ljJeLB75xT52OhAcBB4KmXHd5LRXB86K
+ 7JJspiXNvX+wiUzPNjaK9Mw+oNGvmbzt9W5A4GtWwNQq3vnRTrQdwNwsstvKJ+Juc6LFMKS10o4h
+ Z2DwCdjxqrHKfzcDeu3ffoyZ/GfwTjicbACwPSv/MexTAzMVqZ3PYM2Yhz3jjcz4bj2vagO+1Gjn
+ CuECuVrtnit2lrq+8t32lTiYA43ZzsDRMSkaEp5Z0Nu2Gor0lq2eR5kcJyjB8rJ5B3j0nRxHbNQ8
+ kg9/AwAA//8DAGLW71CUEgAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"90d7566ef56da143a30790d2441d9bff"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 15.76
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/dcjbnhzk/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIADJ7yFcAA9xYTW/jNhC951cEvjOSbCdxFooWBYpFW6C97KYFegkoamwxlkgtSTl2fn2HoiRL
+ EZUEKFoUvVkzj0POcD4eHX8+lsXlAZTmUtwvoqtwcQmCyYyL3f3i4dsXsll8Ti5io6jQlBlEJReX
+ lzHPkow9pSJ/2ccBfliZNtTUOtF1WnJjIHvcSvWowZgCShAmDlqAxZpTBYmmBcRB89PKWK0U7n0i
+ XEuCR4Dk4euPcTAVWzAtZS1MEl1f3d7EQftlFSUollNhCGXMCgmeTpv0br++fXlJn5bq5vopDnyo
+ xoc6JR7dpeDF/cKoGhaB24VqA+pDUKkyRHoUTAHFMBFqLm0M7hcZfhpewiJZhtENCe9IGH2L7j6F
+ y0/h3Z8YiX5Bs76usg+vj0Jcf17QxlsbiR7YD3elUbRer66X6+5KUbrlShsiaAmvz4/Kgs7rmCwr
+ Kk4eDZSUFx75M6SaG5+tKpfCJ9/S4ySqwdCtOOVFgal8dnH9/M86p40CwHzIMgVa+7w/GhCZvYVZ
+ SCEZLbjxmVewwxL0hUhidRWuPu7WUXgbB0NRd2zMUXWa98qp7QpCiyqnyw+hVu+hRI33wdn0rgbX
+ g65ta5H5CqXX6DbRqVL0NFJiPActymekospwDMe5Ib1a4TNOa5NLxV/eNz8wm1LDci8m51U1zEZf
+ Sv8vU/KNBPnP5OLwdtreSLYcikx3/tgMYryiblwsscLGkkH7GayM6UETUEoqgsGtpNDgjUmDG8Rs
+ jE5+xSn3JqAzMb7uV6CfnZU3MY3/h8N05VRooTucKc/0hJoncOWBY0pPMyKulGS4G8ahKyvawBtL
+ v3z9cv3HTxjSt0BjK+OjRGEYDpdPD+rRGUz95IcKNQfIvKsbRBPaLOP2JBj8KWzi60FyZi9oixeP
+ KzDpUlDTiNSWPuAujiPMoAw9EkdwvCo4Qll1FCCVsgAqFsmWFtqSqx7QUQ70gjCquhFo5B5Eku7z
+ 6nuJ8ObLaVIuknUYLTcb26fFsAWtk2izieKg/WirDI2Shsz9zjXFbOm/uy5TceUus5TC5EmEFTQR
+ TrAnoAr5zDIcgRtpu28774ntUQ1Bffh6ZgFn6fmUuSyacPs7Dy/pDkitiiQ3ptKfgoBq7O76KlWU
+ C1s4bcZfYcvFFnCyTf+xBMzW7LGQOxkc0P+rSuw+gzhwJYUF3GsqslQekX309tu2oqCi2D1+kzYB
+ 3W+nyYEWJscTIxMWeyGfRRwMZA6UQcrNWe8+W1Wt8OIwC3d1YYnfAPVa088Qy2hxTJ6hA1nXBk9K
+ FgNEJ2jDp3WNXRSnoNifMSPpuCvLLbFaKhgkdruptIuTzGrWNNrz1meZA9WCf6+hrSQUY+Q5tmKV
+ rFdss462GWMrttre3KxurrdwHYUrBhtIGeb47FJn+QCilERn+5lK6/XtGBhXWvs4IjnHtFSnEdXo
+ x3SDADTUXqAtT6TzqCirDz4RenxvoX10nZnM8B3WINrH0zK8uouGTykXUI0RUDLnpqJ1sceSbST9
+ +QasSEtsZ5DQiuM5pnLnZTB182973jxuZj3/yHt0GIfJk/LfiUMvaVPEDYiC+tlmnWqmeDXLRgf6
+ vp03VJtUyH5kRpDwERtSTwN8hcRjKePF4pFf7WOnJMGB6KHSGddNbXt14KzIrthmWvPcOxCb6fRs
+ Y6NIU+0fCejXTP32ejco8VUvYGoV7/xgJ/sWYG4m223lM3G3OdFiGNJaafdSyMDgU7jjl2OV/24G
+ zwz/9mPM5L+TD8LhaAOAY0r5j2GfXJipSHF9BmvGPK8IvJEZ363nVW3AlxrtfCVcIGet3bPNcgrX
+ Xx9tf42DOdCY9Q0cHZPDIfGbBb1vq6GK79nq+aTJkUkQLC+bd4BH38pxxEbNI7n4CwAA//8DAB/7
+ qTyqEwAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"c87df9cdaa2645ff230d47998fed9ab0"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/dcjbnhzk/void
+ response:
+ body:
+ string: !!binary |
+ H4sIADN7yFcAA9xYS2/jNhC+768IfGck2U7iLBQFBYpFW6C97KNALwFFjS3GEqklKcfOr+9QlGQp
+ opIARYFtb9bMxyFnOI+Pju+PZXFxAKW5FHeL6DJcXIBgMuNid7f4+uUT2Szukw+xUVRoygyikg8X
+ FzHPkow9piJ/3scBfliZNtTUOjlInkEWB+2n1ZhTBYmmBcRB89PKWK0U7nQiXEuCG0Ly9fPPcTAV
+ WzAtZS1MEl1d3lzHQftlFSUollNhCGXMCgmeRZv0dr++eX5OH5fq+uoxDnyo5sR1Sjy6C8GLu4VR
+ NSwCtwvVBtS7oFJliPQomAJqICPUXNgY3C0y/DS8hEWyDKNrEt6SMPoS3X4Mlx/D278wEv2CZn1d
+ Ze9eH0W4/rygjbc2Ej2wH+4Co2i9Xl0t190FonTLlTZE0BJenh+VBZ3XMVlWVJw8GigpLzzyJ0g1
+ Nz5bVS6FT76lx0lUg6FbccqLAhP37OL66d91ThsFgPmQZQq09nl/NCAyewuzkEIyWnDjM69ghwXn
+ C5HE6ipcfdyuo/AmDoai7tiYo+o075VT2xWEFlVOl+9Crd5CiRrvg7PpXQ2uB13b1iLzFUqv0W2i
+ U6XoaaTEeA4aks9IRZXhGA4NxhRQAhbreIXPOK1NLhV/ftv8wGxKDcu9mJxX1TAbfSn9v0zJVxLk
+ h8nF4e20vZFsORSZ7vyxGcR4Rd24WGKFjSWD9jNYGdODJqCUVASDW0mhwRuTBjeI2Rid/I5T7lVA
+ Z2J83S9Avzorr2Ia/w+H6cqp0EJ3OFOe6Ak1j+DKA8eUnmZEXCnJcDeMQ1dWtIE3ln77/Onqz18w
+ pK+BxlbGR4nCMBwunx7UozOY+slPFWoOlqDMIZrQZhm3J8HgT2ETX5HyMHtBW7x4XIFJl4KaRqS2
+ 9AF3cRxhBmXokTiC41XBEcqqowCplAVQsUi2tNCWXPWAjnKgF4RR1Y1AI/cgknSfV99LhDdfTpNy
+ kazDaLnZ2D4thi1onUSbTRQH7UdbZWiUNGTuG9cUs6X/7rpMxZW7zFIKkycRVtBEOMGegCrkM8tw
+ BG6k7b7tvCe2RzV09OvnMws4S8+nzGXRhNvfeXhJd0BqVSS5MZX+GARUY3fXl6miXNjCaTP+Elsu
+ toCTbfoPJWC2Zg+F3MnggP5fVmJ3D+LAlRQWcKepyFJ5RPbR22/bioKKYvf4Q9oEdL+dJgdamBxP
+ jExY7IV8EnEwkDlQBik3Z737bFW1wovDLNzVhSV+A9RLTT9DLKPFMXmGDmRdGzwpWQwQnaANn9Y1
+ dlGcgmJ/xoyk464st8RqqWCQ2O2m0i5OMqtZ02jPW59lDlQL/r2GtpJQjJHn2IpVsl6xzTraZoyt
+ 2Gp7fb26vtrCVRSuGGwgZZjjs0ud5QOIUhKd7Wcqrde3Y2Bcae1TiOQc01KdRlSjH9MNAtBQe4G2
+ PJHOo6Ks3vlE6PG9hfbRdWYyw3dYg2gfT8vw8jYaPqVcQDVGQMmcm4rWxR5LtpH05xuwIi2xnUFC
+ K47nmMqdl8HUzX/seRS+5jk+6UpuMMkftlI9nHnaXBwmT8r/Thyi1+IwfYX/AF73krYw3FgsqJ9j
+ 16lmilezHHyg74dY88AgFXI+mRGkucQG0NP2XyDxWMp4sXjkF/tYbkCQBngeEBnXTUfz6sBZkV2L
+ mRlIc69fHCHTs42NIjm3f5+gXzNdq9c7epBTIWBqFe/8YPnMFmCOidht5RNxtznRYhjSWmn3PsrA
+ UF50rHqs8t/N4HHl336Mmfxj9E44HG0AcDgr/zHsQxMzFYm9z2DNmOfthDcy47v1vKoN+FKjZRWE
+ C2TqtXusWiblpsqDnSpxMAcac92Bo2NKPKS7s6C3bTUE+S1bPYs2OfInguVl8w7w6Fs5jtioeSQf
+ /gYAAP//AwBJrrtijhQAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"80e786ce53b809bafb438c602d78176e"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm20.9111443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIADR7yFcAA9xYTW/jNhC951cEvjOybCfrBIqCAkXRHtpDd7OHvQQUNbIYS6SWpBw7v75DUZKl
+ iEpyKVD0Zs08DjnD+Xh09HAsi8sDKM2luF+EV8vFJQgmUy5294vHb7+R7eIhvoiMokJTZhAVX1xe
+ RjyNE02z3SEXUYAfVqYNNbWOaW1yqfgrpFHQiqzWnCqINS0gCpqfVsZqpXC3E+FaEtwU4sevv0bB
+ VGzBtJS1MPFqeXUbRkH7ZRUlKJZTYQhlzAoJnkeb5Ha/+fL6mjyv1M31cxT4UM2p64R4dJeCF/cL
+ o2pYBG4Xqg2oT0GlShHpUTAF1EBKqLm0MbhfpPhpeAkLdCu8Ictbsgy/hbd3y9VdGP7ASPQLmvV1
+ lX5+/QrXnxe08dZGogf2w11iGG426+vVprtElGZcaUMELeHt+VFZ0Hkdk2VFxcmjgZLywiN/gURz
+ 47NV5VL45Bk9TqIaDN2KEl4UmLxnFzcv/65z2igAzIc0VaC1z/ujAZHaW5iFFJLRghufeQU7LDpf
+ iCRWV+Hq43YTLr9EwVDUHRtzVJ3mvXJqu4LQosrp6lOo9UcoUeN9cDa9q8H1oGtZLVJfofQa3SY6
+ VYqeRkqM56Ap+YxUVBmO4dBgTAElYLGOV/iMn7vXR+YHZhNqWO7F5LyqhtnoS+n/ZUq+kyD/mVwc
+ 3k7bG0nGoUh154/NIMYr6sbFCitsLBm0n8HKiB40AaWkIhjcSgoN3pg0uEHMxuj4T5xy7wI6E+Pr
+ fgP6w1l5F9P4fzhMV06FFrrDmfJCT6h5BlceOKb0NCOiSkmGu2EcurKiDbyx9Pvft9/tjHsXNLYy
+ Pkq4XC6Hy6cH9egMpn78S4WagyUoc4gmtGnK7Ukw+FPYxNeD5MxeUIYXjysw6RJQ04jUlj7gLo4j
+ zKAMPRJHcLwqOEJZdRQgkbIAKhZxRgttyVUP6CgHekEYVd0INHIPIk72efWzRHjz5TQJF/FmGa62
+ W9unxbAFbeJwu0Xa1X60VYZGSUPmvnNNMVv6767LVFy5yyylMHkcYgVNhBPsCahCPrNajsCNtN23
+ nffE9qiGkj5+PbOAs/R8ylwWTbj9nYeXdAekVkWcG1PpuyCgGru7vkoU5cIWTpvxV9hysQWcbNN/
+ KgGzNX0q5E4GB/T/qhK7BxAHrqSwgHtNRZrII7KP3n7bVhRUFLvHX9ImoPvtNDnQwuR4YmTCYi/k
+ C7LrgcyBUki4OevdZ6uqFV4cZuGuLizxG6DeavoZYhktjskzdCDr2uBJyWKA6ARt+LSusYviFBT7
+ M2YkHXdlmRGrpYJBbLebSrs4ybRmTaM9b32WOVAt+M8a2kpCMUaeYytW8WbNtpswSxlbs3V2c7O+
+ uc7gOlyuGWwhYZjjs0ud5QOIUhKd7mcqrde3Y2Bcae1ziOQc01KdRlSjH9MNAtBQe4G2PJHOo6Ks
+ Pknxe3xv4d13WIOYe0q5gGqMgJI5NxWtiz2WbCPpzzdgRVpiO4OYVhzPMZU7L4O3bvaSNjSuMRbU
+ z7LqRDPFq1kWNtD3bayhmKTCqS9TgkSH2CB6Cv8NEo+ljBeLR36zj50OBAeBh0KmXDc57dWBsyK7
+ JJtpSXPvH2wi07ONjSI9sw9o9Gsmb3u9GxD4mhUwtYp3frATLQOYm0V2W/lC3G1OtBiGpFbaMeQU
+ DD4BO141VvnvZkCv/duPMZP/DD4Jh6MNALZn5T+GfWpgpiK18xmsGfOwZ7yRGd+t51VtwJca7Vwh
+ XCBXq91zxc5S11eebF+JgjnQmO0MHB2ToiHhmQV9bKuhSB/Z6nmUyXGCEiwvm3eAR8/kOGKj5hFf
+ /AMAAP//AwBpvue7lBIAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"557a3ca4f92391ee042a04f38d4c21e3"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 20.92
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/bsafgvhn/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ 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
+ headers:
+ cache-control: [no-cache]
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 422, message: Unprocessable Entity}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/bsafgvhn/void
+ response:
+ body:
+ string: !!binary |
+ H4sIADV7yFcAA9xYTW/jNhC951cEvjOybCfrBIqCAkXRHtpDd7OHvQQUNbIYS6SWpBx7f32HoiRL
+ EZUEKAoserNmHoec4Xw8Ono4lsXlAZTmUtwvwqvl4hIEkykXu/vF45ffyHbxEF9ERlGhKTOIii8u
+ LyOexomm2e6QiyjADyvThppaxwfJU0ijoP20GnOqINa0gChofloZq5XCnU6Ea0lwQ4gfP/8aBVOx
+ BdNS1sLEq+XVbRgF7ZdVlKBYToUhlDErJHgWbZLb/ebTjx/J80rdXD9HgQ/VnLhOiEd3KXhxvzCq
+ hkXgdqHagPoQVKoUkR4FU0ANpISaSxuD+0WKn4aXsEC3whuyvCXL8Et4e7dc3YXhN4xEv6BZX1fp
+ x9evcf15QRtvbSR6YD/cBYbhZrO+Xm26C0RpxpU2RNASXp8flQWd1zFZVlScPBooKS888hdINDc+
+ W1UuhU+e0eMkqsHQrSjhRYGJe3Zx8/LfOqeNAsB8SFMFWvu8PxoQqb2FWUghGS248ZlXsMOC84VI
+ YnUVrj5uN+HyUxQMRd2xMUfVad4rp7YrCC2qnK4+hFq/hxI13gdn07saXA+6ltUi9RVKr9FtolOl
+ 6GmkxHgOGpLPSEWV4RgODcYUUAIW63iFzzitTS4V//G++YHZhBqWezE5r6phNvpS+n+Zkm8kyE+T
+ i8PbaXsjyTgUqe78sRnEeEXduFhhhY0lg/YzWBnRgyaglFQEg1tJocEbkwY3iNkYHf+JU+5NQGdi
+ fN2vQH84K29iGv8Ph+nKqdBCdzhTXugJNc/gygPHlJ5mRFQpyXA3jENXVrSBN5Z+//v2q51xb4LG
+ VsZHCZfL5XD59KAencHUj3+pUHOwBGUO0YQ2Tbk9CQZ/Cpv4ipSH2QvK8OJxBSZdAmoakdrSB9zF
+ cYQZlKFH4giOVwVHKKuOAiRSFkDFIs5ooS256gEd5UAvCKOqG4FG7kHEyT6vvpcIb76cJuEi3izD
+ 1XZr+7QYtqBNHG63SLvaj7bK0ChpyNxXrilmS//ddZmKK3eZpRQmj0OsoIlwgj0BVchnVssRuJG2
+ +7bzntge1dDRx89nFnCWnk+Zy6IJt7/z8JLugNSqiHNjKn0XBFRjd9dXiaJc2MJpM/4KWy62gJNt
+ +k8lYLamT4XcyeCA/l9VYvcA4sCVFBZwr6lIE3lE9tHbb9uKgopi9/hL2gR0v50mB1qYHE+MTFjs
+ hXxBZj2QOVAKCTdnvftsVbXCi8Ms3NWFJX4D1GtNP0Mso8UxeYYOZF0bPClZDBCdoA2f1jV2UZyC
+ Yn/GjKTjriwzYrVUMIjtdlNpFyeZ1qxptOetzzIHqgX/XkNbSSjGyHNsxSrerNl2E2YpY2u2zm5u
+ 1jfXGVyHyzWDLSQMc3x2qbN8AFFKotP9TKX1+nYMjCutfQqRnGNaqtOIavRjukEAGmov0JYn0nlU
+ lNUHKP4K22eP7y20j64zkxm+wxrE3FPKBVRjBJTMualoXeyxZBtJf74BK9IS2xnEtOJ4jqnceRlM
+ 3fz3nq/f8nz6+vwJvO4lbUK4cVBQP7esE80Ur2a550DfN++GWJMKuY5MCdI7YgPoaXevkHgsZbxY
+ PPKrfexMJDj+PMQ55bqpZK8OnBXZldZMI5579WHrnJ5tbBRJqf3bAP2aqdZe78YivuEFTK3inR/s
+ HM8A5iaw3Va+EHebEy2GIamVdu+CFAw+fDs2OVb572bwqPBvP8ZM/in5IByONgA4lJT/GPaBhZmK
+ hNZnsGbM82bAG5nx3Xpe1QZ8qdFOU8IFMtTaPdIsg3Dd9Ml20yiYA4053sDRMRUc0rxZ0Pu2GmL4
+ nq2ePZoceQPB8rJ5B3j0TI4jNmoe8cU/AAAA//8DAO2T/6CGEwAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"04199295c18cf8af309f17ca6ed5e96f"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode 4
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/customers
+ response:
+ body:
+ string: !!binary |
+ H4sIADd7yFcAA5SRzVLDIBSF930Khj0SMtFpOyTd+QR14+6ae9PSBpIBapu3N9Q6dUQXLs85fPcP
+ vbnYnr2TD2ZwNVcPBWfk2gGN29X8ZfsslnzTLHR7CnGw5JsFY9pgs1RlVSm11HIWyZuzdg8uilkf
+ Vrszdgc8Xia7x53X8nuaXnfGhygcWGLO9DWP/kRcXqMe/krawY7gpswnC6bP3HE/uLxGB5fMO9Nb
+ MPGXfp4gEgqILE4j1RxnGY0l3pSFehLFShRqq1brolyrx1ct78CVP434P/4OfPa/3lx0hnoMyUlb
+ gY+mNePtlpWWP5wEyoxMu6CJogWP4TYNeA/TbVVA9BQCZdlXrfTzHwAAAP//AwCGeeqOLAIAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"c9ee1eb47ae044090870561fd14c8a0f"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: !!python/unicode 81244118fake-valid-nonce
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
+ response:
+ body:
+ string: !!binary |
+ H4sIADh7yFcAA6xVTXPaMBC98ysY34UtINTJGOXWYy9NeuglI0tr0CBLriQncX99V8ZgQiBtp72x
+ b5/24/lJFPevtZ4+g/PKmnVCZ1kyBSOsVGazTh4fPpM8uWeTQjiQKhDBnWST6bQoldZIIVxKB95H
+ DFElmcyLVMkhFq0PtgZHEMnpfLmkFNOn6J5XKecDMbyGqVF6nQTXQpIOSc2v54StG266CxkfHEA4
+ zHeBAK8BjAT5AUVbwbUKl8o72KBgFxKN9YFrggoCu13S7FORnkKHsVsTXNdDhOtmy+cXlztnLX7H
+ Mi3qqsQHtGtCOuAhihGmoWtgnUgMg6ohYfOMrkh2SzL6QG/vsvkdXX3Hj3g8MFRoG/l3FcYDvaPS
+ C5ZCmxm2zOg8z2Pe9Fj0IIkt2DflOU5yjA/ZrdUS7XVp1egYlEgortmj2Rn7YrDCiE1OpLIVUd63
+ 3AhgkfQenfy7cn92R0ZW9GRA67HHryesIxq5EkoVxu324T5R8VYf5iyt1cBNwqI6kdYn98TWodoE
+ Td7qOOtJsfPMpL9KjXJ9f1JbE7aMzov0HXjG7IA7VGievaH26JEJ8nzWimsPw4mh+xa4Dlv87jCO
+ eYJFiqr5BkjrNNuG0Pi7NOXeQ/Cz0nFl4kuxwWVeeDdDK6QN72ow4amGsLXySduNTZ/RarPGbO7B
+ PCtnTSSsPTeytK/44B3r993QHtHIJTe7caQ36OTwri0ZzXNapEMQcWzvrD6x5wHokw4ajp74YhEf
+ fu9xK1sRol3GcyMWKb4tvXCqiTr7QVfuHO+GmxHsDgzLf3aLl02R7qOIt0b9aPunpez9iJurSoFj
+ y4XIl7SSQizEolqtFqubCm5othCQQynQxVePTv7Dg/EMprbEy90VjxzzA9th6/0tebd9fynH/7df
+ AAAA//8DALS0gHAVBwAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d70acf9cd039d2cd7c9fd814e4fc9ada"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: !!python/unicode 8zy3wg2062.11salefalse4
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ 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
+ headers:
+ cache-control: [no-cache]
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 422, message: Unprocessable Entity}
+- request:
+ body: !!python/unicode 4
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/customers
+ response:
+ body:
+ string: !!binary |
+ H4sIADp7yFcAA5SRzVKDMBSF930KJvsIadWBTqA7n6Bu3F25F0glgUmChbeXIE4d0YXLc06++xd5
+ GnUbvZN1qjM5E3cJi8iUHSpT5+z5/MRTdip2shyc7zTZYhdFUmFxENlDmh0SGc8ieHNWNmA8n/Ul
+ q69YXfBtnHSDtZXx9zS8rpR1nhvQFBnV5szbgVi8RC38lZSd7sFMG580qHbj9k1ntjUqGDfelV6d
+ 8r/0swSekIOP/NRTznCWXmlixT4RjzzJeCLOIjsm+6NIX2R8AxZ+6PF//A347L/cnFeKWnTBCVuB
+ 9apU/XrLexn/cAIYb8iwCyrPS7Do1mnAWpjWVQHRknO0yb5qhZ//AAAA//8DAAA7bHAsAgAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"a157c5b8330663b37de4bd4cf8d14f19"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: !!python/unicode 31958930fake-valid-nonce
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
+ response:
+ body:
+ string: !!binary |
+ H4sIADt7yFcAA6xVwXLaMBC98xWM78I2JtTOGOXWYy9NeuglI0tr0CBLriST0K/vyhhMCKTttDf2
+ 7ZN29/mtKB9eGzXdgXXS6FWUzpJoCpobIfV6FT09fiZ59EAnJbcgpCecWUEn02lZSaWQQpgQFpwL
+ GKJS0J/LMpZiiHnnvGnAEkSytLjLiywp43P0wKuldZ5o1sBUS7WKvO0gioekYrdz3DQt0/srGect
+ gD/2d4UArx60APEBRRnOlPTXrrewRsGuJFrjPFMEFQRaLNLkUxmfQ8e2O+3tvocIU+2Gza8Od8nK
+ fsfSHeoq+Qe0W0JaYD6I4ad+38IqEhh62UBE50m6JElBkvQxLe6T+X1afMePeDow3NC14u9uGA/0
+ joqvWAptpukiSed5HvK6x4IHSShBv0nHsJNTfMxujBJor2ujBsegRFwyRZ/0VpsXjTeM2ORMKlMT
+ 6VzHNAcaSO/Ryb8r92c7MrKCJz1ajz59PWOd0MAVUEk/TncID4maderYZ2WMAqYjGtQJtD55IHYW
+ 1SZo8k6FXs8uu8xM+lVqpe3rk8Zov6HpvIzfgRfMPTCLCs2TN9QePTFBXPZaM+VgODFU3wBTfoPf
+ HcY2z7BAkQ1bA+msohvvW3cfx8w58G5WWSZ1eCnWOMwL28/QCnHL9g1o/9yA3xjxrMzaxDu02qzV
+ 6wfQO2mNDoSVY1pU5hUfvNP9fTW0RzByxfR2bOkNOjm+awua5nlaxkMQcCxvjTqz5xHokxZahp74
+ YhAffh9wIzrug13GcyMWKK6rHLeyDTq7QVdmLdsPm+HNFjRdLrKCN2V8iALeafmj65+WqvcjTi5r
+ CZYuMp4v0lpwnvGsXi6z5V0Nd2mSccih4riyN49O/sODsQPdGOLE9oZHTvmBbbH0YUveTd8v5fj/
+ 9gsAAP//AwBb0EAMFQcAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d6fde2b51f7dbc6d70df95c4cae0b156"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: !!python/unicode 31958930fake-valid-nonce
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/payment_methods
+ response:
+ body:
+ string: !!binary |
+ H4sIADx7yFcAA6xVwXLaMBC98xWM78I2JtRkjHLrsZcmPfSSkaW10SBLjiST8PddGYMJgbSd9sa+
+ 97TaXb8VxcNbo6Y7sE4avY7SWRJNQXMjpK7X0dPjV5JHD3RScAtCesKZFXQynRalVAolhAlhwbmA
+ ISoF9dsilmKIeee8acASRLJ0dZevsqSIz9GDrpLWeaJZA1Mt1TrytoMoHkjFbnPcNC3T+yuM8xbA
+ H+u7IoA3D1qA+ESiDGdK+mvpLdQ4sCtEa5xniuAEga4WafKliM+hY9md9nbfQ4SpdsPmV5u7VGW/
+ U+kO5yr5J7Jbg7TAfBiGn/p9C+tIYOhlAxGdJ+mSJCuSpI/p6j6Z36ern/gRTweGDF0r/i7DeKB3
+ VHzFUmgzTRdJOs/zwOseCx4k4Qr6QzqGlZziI7sxSqC9rrUaHIMj4pIp+qS32rxqzDBik7NRmYpI
+ 5zqmOdAg+ohO/n1yf7Yjoyp40qP16NP3M9UJDVoBpfRjd4fwQFSsU8c6S2MUMB3RiikHQdezB2Vn
+ cdwEXd6pUOxZtktm0u9SK21fAGmM9huazov4A3ih3AOzOKJ58k7aoycliBvFDmyv3ABTfoMfHsYy
+ z7AgkQ2rgXRW0Y33rbuPY+YceDcrLZM6PBU1NvPK9jP0QtyyfQPaPzfgN0Y8K1ObeIdem7W6fgC9
+ k9boIFg7pkVp3vDFO+Xvb0N/BCeXTG/Hkt6hk+PDtqBpnqdFPAQBx+utUWf+PAI9aaFlaIpvBvHh
+ 9wE3ouM++GU8N2JB4rrScSvbMGc3zJVZy/bDanizBU3Ll5ftvC7iQxTwTsuXrn9byt6Q2LmsJFi6
+ yHi+SCvBecazarnMlncV3KVJxiGHkuPO3jw6+Q8vxg50Y4gT2xseOfGD2uLVhzX50H2/leMf3C8A
+ AAD//wMAibK6VRYHAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"6cd59e5e3a048f7159fe59e4fba3ce18"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: !!python/unicode bqqk2g103.3salefalse4
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAD17yFcAA9xYTW/jNhC951cEvjOSbCdrB4oWBYqiPbSXbHrYS0BRY4tridSSlGPn13coSrIU
+ UUkuBYrerJnHIWc4H4+Ov57K4voISnMpHhbRTbi4BsFkxsX+YfH07TeyWXxNrmKjqNCUGUQlV9fX
+ Mc+SL8vl3WYtznGAH1amDTW1Tmhtcqn4K2Rx0Iqs1pwrSDQtIA6an1bGaqVwtzPhWhLcFJKnx1/j
+ YCq2YFrKWpgkClc3qzAO2k+rKUGxnApDKGNWSPBA2qTbw/rL62v6Y6nubn/EgQ/VHLtOiUd3LXjx
+ sDCqhkXgdqHagPoUVKoMkR4FU0ANZISaaxuEh0WGn4aXsEiWYXRHwi0Jo2/R9j5c3i/D7xiKfkGz
+ vq6yz6+PcP1lQRtwbSR6YD/cLa6i7e1mawPqwoHSHVfaEEFLeHt+VBZ0XsdkWVFx9migpLzwyF8g
+ 1dz4bFW5FD75jp4mUQ2GbsUpLwrM3ouL5vDvOqeNAsB8yDIFWvu8PxkQmb2FWUghGS248ZlXsMeq
+ 84VIYnkVrkC26yj8EgdDUXdszFF1nvfKqe0KQosqp8tPoVYfoUSN98HZ9K4G14Ou7WqR+Qql1+g2
+ 0alS9DxSYjwHXclnpKLKcAyHBmMKKAGLdbzCZ/zSvj4yPzCbUsNyLybnVTXMRl9K/y9T8p0E+c/k
+ 4vB22t5IdhyKTHf+2AxivKJuXKyxwsaSQfsZrIzpURNQSiqCwa2k0OCNSYMbxGyMTv7EKfcuoDMx
+ vu43oD+clXcxjf/H43TlVGihe5wpL/SMmh/gygPHlJ5mRFwpyXA3jENXVrSBN5bC9ffH31cY0vdA
+ Yyvjo0RhGA6XTw/q0RlM/eSXCjVHy1DmEE1os4zbk2Dwp7CJr0fJmb2gHV48rsCkS0FNI1Jb+oC7
+ OI4wgzL0RBzB8argBGXVUYBUygKoWCQ7WmjLrnpARznQC8Ko6kagkQcQSfrz52G5R3jz5TQpF8k6
+ jJabje3TYtiC1km02URx0H60VYZGScPm/uaaYrb0312Xqbhyl1lKYfIkWsbBRDjBnoEq5DPLcARu
+ pO2+7bwntkc1nPTp8cICLtLLKXNZNOH2dx5e0j2QWhVJbkyl74OAauzu+iZVlAtbOG3G32DLxRZw
+ tk3/uQTM1uy5kHsZHNH/m0rsv4I4ciWFBTxoKrJUnpB99PbbtqKgotg9/pI2Ad1vp8mBFibHEyMV
+ FgchX0QcDGQOlEHKzUXvPltVrfDiMAv3dWGJ3wD1VtPPEMtocUxeoANZ1wbPShYDRCdow6d1jV0U
+ p6A4XDAj6bgryx2xWioYJHa7qbSLk8xq1jTay9YXmQPVgv+soa0kFGPkObZilaxXbLOOdhljK7ba
+ 3d2t7m53cIvvBwYbSBnm+OxSZ/kIopREZ4eZSuv17RgYV1r7HiI5x7RU5xHV6Md0gwA01F6gLU+k
+ 86goq09S/B7fW3j3IdYgZt9SLqIaQ6Bkzk1F6+KANdtI+gMOaJGW2M8goRXHg0zlzs3grZ+9pI2N
+ 64wF9dOsOtVM8WqWhg30fR9rOCapcOzLjCDTITaKnsp/g8RjKePF4pHf7GPHA8FJ4OGQGddNUnt1
+ 4KzILstmetLcAwi7yPRsY6PIz+wTGv2aSdxe7yYEPmcFTK3inR/tSNsBzA0ju618Ie42J1oMQ1or
+ 7ShyBgbfgB2xGqv8dzPg1/7tx5jJvwafhMPJBgD7s/Ifw741MFOR2/kM1ox56DPeyIzv1vOqNuBL
+ jXawEC6QrNXuvWKHqWssz7axxMEcaEx3Bo6OWdGQ8cyCPrbVcKSPbPVEyuQ4QgmWl807wKPv5Dhi
+ o+aRXP0DAAD//wMAwfoLxZYSAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"ec201d8c98adffd9d55b0f247e2954f3"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/722684ny/void
+ response:
+ body:
+ string: !!binary |
+ H4sIAD57yFcAA9xYTW/jNhC9768IfGck2U7WCRQFBYqiPbSX3fSwl4CixhZjiVRIyrHz6zsUJVmK
+ qCSXBRa9WTOPQ85wPh4d3x/L4uIASnMp7hbRZbi4AMFkxsXubvHw/Q+yWdwnX2KjqNCUGUQlXy4u
+ Yp4lX5fL681anOIAP6xMG2pqnRwkzyCLg/bTasypgkTTAuKg+WllrFYKdzoRriXBDSF5+PZ7HEzF
+ FkxLWQuTROHqchXGQftpNSUollNhCGXMCgkeRpv0Zr/++vqaPi3V9dVTHPhQzZHrlHh0F4IXdwuj
+ algEbheqDahPQaXKEOlRMAXUQEaoubBBuFtk+Gl4CYtkGUbXJLwhYfQ9urkNl7fL8AeGol/QrK+r
+ 7PPrI1x/XtAGXBuJHtgPd4Or6OZqc2MD6sKB0i1X2hBBS3h7flQWdF7HZFlRcfJooKS88MhfINXc
+ +GxVuRQ++ZYeJ1ENhm7FKS8KzNyzi2b/c53TRgFgPmSZAq193h8NiMzewiykkIwW3PjMK9hhxflC
+ JLG8ClcgN+so/BoHQ1F3bMxRdZr3yqntCkKLKqfLT6FWH6FEjffB2fSuBteDrm1rkfkKpdfoNtGp
+ UvQ0UmI8Bx3JZ6SiynAMhwZjCigBi3W8wmec1iaXir9+bH5gNqWG5V5MzqtqmI2+lP5fpuQ7CfLL
+ 5OLwdtreSLYcikx3/tgMYryiblysscLGkkH7GayM6UETUEoqgsGtpNDgjUmDG8RsjE7+xin3LqAz
+ Mb7uN6C/nJV3MY3/h8N05VRooTucKS/0hJoncOWBY0pPMyKulGS4G8ahKyvawBtL4frHtz9XGNL3
+ QGMr46NEYRgOl08P6tEZTP3ktwo1B8tQ5hBNaLOM25Ng8Kewia/IeZi9oC1ePK7ApEtBTSNSW/qA
+ uziOMIMy9EgcwfGq4Ahl1VGAVMoCqFgkW1poy656QEc50AvCqOpGoJF7EEn6/Lxf7hDefDlNykWy
+ DqPlZmP7tBi2oHUSbTZRHLQfbZWhUdKwuX+5ppgt/XfXZSqu3GWWUpg8iZZxMBFOsCegCvnMMhyB
+ G2m7bzvvie1RDR99+HZmAWfp+ZS5LJpw+zsPL+kOSK2KJDem0rdBQDV2d32ZKsqFLZw24y+x5WIL
+ ONmm/1gCZmv2WMidDA7o/2UldvcgDlxJYQF3mooslUdkH739tq0oqCh2j3+kTUD322lyoIXJ8cRI
+ hcVeyBcRBwOZA2WQcnPWu89WVSu8OMzCXV1Y4jdAvdX0M8QyWhyTZ+hA1rXBk5LFANEJ2vBpXWMX
+ xSko9mfMSDruynJLrJYKBondbirt4iSzmjWN9rz1WeZAteDPNbSVhGKMPMdWrJL1im3W0TZjbMVW
+ 2+vr1fXVFq7w/cBgAynDHJ9d6iwfQJSS6Gw/U2m9vh0D40pr30Ik55iW6jSiGv2YbhCAhtoLtOWJ
+ dB4VZfVJit/jewvtq+vMZIYPsQYx+5ZyEdUYAiVzbipaF3us2UbSH3BAi7TEfgYJrTgeZCp3bgZT
+ P3+y69P356/gdi9pU8INhIL62WWdaqZ4Ncs+B/q+fTfUmlTIdmRGkOARG0FPw3uDxGMp48Xikd/s
+ Y6ciwQHooc4Z100te3XgrMiuuGZa8dy7D5vn9Gxjo0hL7T8H6NdMvfZ6NxjxFS9gahXv/GAn+RZg
+ bgbbbeULcbc50WIY0lpp9zLIwODTt+OTY5X/bgbPCv/2Y8zkz5JPwuFoA4BjSfmPYZ9YmKlIaX0G
+ a8Y8rwa8kRnfredVbcCXGu08JVwgR63dM81yCNdPH20/jYM50JjlDRwdk8Eh0ZsFfWyroYYf2er5
+ o8mRORAsL5t3gEffynHERs0j+fIfAAAA//8DAIeXRAiJEwAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"1e4587addc5ec753a958a02f158cd48b"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm10.011443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAD97yFcAA9xYS2/jNhC+768IfGck2U7WCRQtChQL9NBe9oFtLwFFjS2uJVJLUn7sr+9QlGTJ
+ opL0UKDozZr5OOQM5/HR8YdTWdwcQGkuxdMiug0XNyCYzLjYPS2+fP5INosPybvYKCo0ZQZRybub
+ m5hnSbq8O+6PSscBfliZNtTUOqG1yaXiPyGLg1ZkteZcQaJpAXHQ/LQyViuFu50J15LgppB8+fRr
+ HEzFFkxLWQuTROFtGMZB+2UVJSiWU2EIZcwKCZ5Hm/Rhv37/82f6fanu777HgQ/VnLpOiUd3I3jx
+ tDCqhkXgdqHagHoTVKoMkR4FU0ANZISaGxuDp0WGn4aXsEiWYXRPwgcSRp+jh8dw+bhc/YWR6Bc0
+ 6+sq+2frLwvaeGsj0QP74S4xitbr1d1y3V0iSrdcaUMELeH6/Kgs6LyOybKi4uzRQEl54ZEfIdXc
+ +GxVuRQ++ZaeJlENhm7FKS8KTN6Li+vjv+ucNgoA8yHLFGjt8/5kQGT2FmYhhWS04MZnXsEOi84X
+ IonVVbj6eFhH4fs4GIq6Y2OOqvO8V05tVxBaVDldvgm1eg0larwPzqZ3NbgedG1bi8xXKL1Gt4lO
+ laLnkRLjOWhKPiMVVYZjODQYU0AJWKzjFT7jl+71mvmB2ZQalnsxOa+qYTb6Uvp/mZIvJMh/JheH
+ t9P2RrLlUGS688dmEOMVdeNiiRU2lgzaz2BlTA+agFJSEQxuJYUGb0wa3CBmY3TyO065FwGdifF1
+ X4F+c1ZexDT+Hw7TlVOhhe5wphzpGTXfwZUHjik9zYi4UpLhbhiHrqxoA28sfb37Fv35EUP6Emhs
+ ZXyUKLREYE47s9Jg6ie/VKg5WIIyh2hCm2XcngSDP4VNfD1IzuwFbfHicQUmXQpqGpHa0gfcxXGE
+ GZShJ+IIjlcFJyirjgKkUhZAxSLZ0kJbctUDOsqBXhBGVTcCjdyDSNJ9Xv0oEd58OU3KRbIOo+Vm
+ Y/u0GLagdRJtNlEctB9tlaFR0pC5r1xTzJb+u+syFVfuMkspTJ5EWEET4QR7BqqQzyzDEbiRtvu2
+ 857YHtVQ0i+fLizgIr2cMpdFE25/5+El3QGpVZHkxlT6MQioxu6ub1NFubCF02b8LbZcbAFn2/Sf
+ S8BszZ4LuZPBAf2/rcTuA4gDV1JYwJOmIkvlCdlHb79tKwoqit3jD2kT0P12mhxoYXI8MTJhsRfy
+ KOJgIHOgDFJuLnr32apqhReHWbirC0v8BqhrTT9DLKPFMXmBDmRdGzwrWQwQnaANn9Y1dlGcgmJ/
+ wYyk464st8RqqWCQ2O2m0i5OMqtZ02gvW19kDlQL/qOGtpJQjJHn2IpVsl6xzTraZoyt2Gp7f7+6
+ v9vCXRSuGGwgZZjjs0ud5QOIUhKd7Wcqrde3Y2Bcae1ziOQc01KdR1SjH9MNAtBQe4G2PJHOo6Ks
+ 3kjxe3xv4cV3WIOYe0q5gGqMgJI5NxWtiz2WbCPpzzdgRVpiO4OEVhzPMZU7L4NrN3tJGxrXGAvq
+ Z1l1qpni1SwLG+j7NtZQTFLh1JcZQaJDbBA9hX+FxGMp48Xika/2sdOB4CDwUMiM6yanvTpwVmSX
+ ZDMtae79g01keraxUaRn9gGNfs3kba93AwJfswKmVvHOD3aibQHmZpHdVh6Ju82JFsOQ1ko7hpyB
+ wSdgx6vGKv/dDOi1f/sxZvKfwRvhcLIBwPas/MewTw3MVKR2PoM1Yx72jDcy47v1vKoN+FKjnSuE
+ C+RqtXuu2Fnq+sqz7StxMAcas52Bo2NSNCQ8s6DXbTUU6TVbPY8yOU5QguVl8w7w6Fs5jtioeSTv
+ /gYAAP//AwD03ieQlBIAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"5951b0b10a3fe580c59d1782044bb1d0"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: null
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/b25wkwrs/void
+ response:
+ body:
+ string: !!binary |
+ H4sIAEB7yFcAA9xYS2/jNhC+51cYvjOSbCfrLBQtChQL9NBe9oG2lwVFjS2uJVJLUn7k13coSrIU
+ UUmAosCiN2vm45AznMdHxx/OZbE4gtJcisdldBsuFyCYzLjYPy6/fP5ItssPyU1sFBWaMoOo5Gax
+ iHmWpKu70+GkdBzgh5VpQ02tk6PkGWRx0H5ajblUkGhaQBw0P62M1UrhThfCtSS4ISRfPv0aB1Ox
+ BdNS1sIkUXgbhnHQfllFCYrlVBhCGbNCgmfRJn04bN49PaXfV+r+7nsc+FDNieuUeHQLwYvHpVE1
+ LAO3C9UG1JugUmWI9CiYAmogI9QsbAwelxl+Gl7CMlmF0T0JH0gYfY4e3oer96v13xiJfkGzvq6y
+ t6/f4Prrgjbe2kj0wH64C4yizWZ9t9p0F4jSHVfaEEFLeH5+VBZ0XsdkWVFx8WigpLzwyE+Qam58
+ tqpcCp98R8+TqAZDt+KUFwUm7tXFzem/dU4bBYD5kGUKtPZ5fzYgMnsLs5BCMlpw4zOvYI8F5wuR
+ xOoqXH08bKLwXRwMRd2xMUfVZd4rp7YrCC2qnK7ehFq/hhI13gdn07saXA+6tqtF5iuUXqPbRKdK
+ 0ctIifEcNCSfkYoqwzEcGowpoAQs1vEKn3Fam1wq/vS6+YHZlBqWezE5r6phNvpS+n+Zki8kyE+T
+ i8PbaXsj2XEoMt35YzOI8Yq6cbHCChtLBu1nsDKmR01AKakIBreSQoM3Jg1uELMxOvkdp9yLgM7E
+ +LqfgX5zVl7ENP4fj9OVU6GF7nGmnOgFNd/BlQeOKT3NiLhSkuFuGIeurGgDbyx9vfsz+usjhvQl
+ 0NjK+ChRaInAnHZmpcHUT36pUHO0BGUO0YQ2y7g9CQZ/Cpv4ipSH2Qva4cXjCky6FNQ0IrWlD7iL
+ 4wgzKEPPxBEcrwrOUFYdBUilLICKZbKjhbbkqgd0lAO9IIyqbgQaeQCRpIe8+lEivPlympSLZBNG
+ q+3W9mkxbEGbJNpuozhoP9oqQ6OkIXNfuaaYLf1312UqrtxlllKYPImwgibCCfYCVCGfWYUjcCNt
+ 923nPbE9qqGjXz5dWcBVej1lLosm3P7Ow0u6B1KrIsmNqfT7IKAau7u+TRXlwhZOm/G32HKxBVxs
+ 0/9WAmZr9q2Qexkc0f/bSuw/gDhyJYUFPGoqslSekX309tu2oqCi2D3+kDYB3W+nyYEWJscTIxMW
+ ByFPIg4GMgfKIOXmqnefrapWeHGYhfu6sMRvgHqu6WeIZbQ4Jq/QgaxrgxcliwGiE7Th07rGLopT
+ UByumJF03JXljlgtFQwSu91U2sVJZjVrGu1166vMgWrBf9TQVhKKMfIcW7FKNmu23US7jLE1W+/u
+ 79f3dzu4i8I1gy2kDHN8dqmzfARRSqKzw0yl9fp2DIwrrX0KkZxjWqrLiGr0Y7pBABpqL9CWJ9J5
+ VJTVG58IPb630D66rkxm+A5rEHNPKRdQjRFQMuemonVxwJJtJP35BqxIS2xnkNCK4zmmcudlMHXz
+ 33u+ecnz6evzJ/C6l7QJ4cZBQf3csk41U7ya5Z4Dfd+8G2JNKuQ6MiNI74gNoKfdPUPisZTxYvHI
+ z/axM5Hg+PMQ54zrppK9OnBWZFdaM4147tWHrXN6trFRJKX2bwP0a6Zae70bi/iGFzC1ind+tHN8
+ BzA3ge228kTcbU60GIa0Vtq9CzIw+PDt2ORY5b+bwaPCv/0YM/mn5I1wONsA4FBS/mPYBxZmKhJa
+ n8GaMc+bAW9kxnfreVUb8KVGO00JF8hQa/dIswzCddNvtpvGwRxozPEGjo6p4JDmzYJet9UQw9ds
+ 9ezR5MgbCJaXzTvAo+/kOGKj5pHc/AMAAP//AwA6f3MShhMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d0fa43a6a3f2c132491ff3bb76e3235e"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm103.311443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAEJ7yFcAA9xYTW/jNhC951cEvjOSbMfrLBQtWhQFCrQ9dDc97GVBUWOLa4nUkpRj59d3KEqy
+ ZFFJLgWK3qyZxyFnOB+Pjj+dyuL2CEpzKR4X0V24uAXBZMbF/nHx9OVXsl18Sm5io6jQlBlEJTe3
+ tzHPklKI+/2KZXGAH1amDTW1Tmhtcqn4C6CmFVmtOVeQaFpAHDQ/rYzVSuFuZ8K1JLgpJE+ff4mD
+ qdiCaSlrYZIoXN2twjhoP62mBMVyKgyhjFkhwQNpkz4c1h9eXtLvS7W5/x4HPlRz7DolHt2t4MXj
+ wqgaFoHbhWoD6l1QqTJEehRMATWQEWpubRAeFxl+Gl7CIlmG0YaEDySMvkQPH8Plx+X9VwxFv6BZ
+ X1fZ+9dvcP1lQRtwbSR6YD/cLUbRer26X667W0TpjittiKAlXJ8flQWd1zFZVlScPRooKS888mdI
+ NTc+W1UuhU++o6dJVIOhW3HKiwKz9+Li+vnfdU4bBYD5kGUKtPZ5fzIgMnsLs5BCMlpw4zOvYI9V
+ 5wuRxPIqXIE8rKPwQxwMRd2xMUfVed4rp7YrCC2qnC7fhVq9hRI13gdn07saXA+6tqtF5iuUXqPb
+ RKdK0fNIifEcdCWfkYoqwzEcGowpoAQs1vEKn/FL+3rL/MBsSg3LvZicV9UwG30p/b9MyVcS5D+T
+ i8PbaXsj2XEoMt35YzOI8Yq6cbHEChtLBu1nsDKmR01AKakIBreSQoM3Jg1uELMxOvkDp9yrgM7E
+ +LqvQL85K69iGv+Px+nKqdBC9zhTnukZNd/BlQeOKT3NiLhSkuFuGIeurGgDbyz9vPn6+1+fMaSv
+ gcZWxkeJwjAcLp8e1KMzmPrJTxVqjpahzCGa0GYZtyfB4E9hE1+PkjN7QTu8eFyBSZeCmkaktvQB
+ d3EcYQZl6Ik4guNVwQnKqqMAqZQFULFIdrTQll31gI5yoBeEUdWNQCMPIJL0kFc/SoQ3X06TcpGs
+ w2i53do+LYYtaJ1E220UB+1HW2VolDRs7m+uKWZL/911mYord5mlFCZPIqygiXCCPQNVyGeW4Qjc
+ SNt923lPbI9qOOnT5wsLuEgvp8xl0YTb33l4SfdAalUkuTGV/hgEVGN313epolzYwmkz/g5bLraA
+ s23630rAbM2+FXIvgyP6f1eJ/ScQR66ksIBHTUWWyhOyj95+21YUVBS7x5/SJqD77TQ50MLkeGKk
+ wuIg5LOIg4HMgTJIubno3WerqhVeHGbhvi4s8RugrjX9DLGMFsfkBTqQdW3wrGQxQHSCNnxa19hF
+ cQqKwwUzko67stwRq6WCQWK3m0q7OMmsZk2jvWx9kTlQLfiPGtpKQjFGnmMrVsl6xbbraJcxtmKr
+ 3Waz2tzv4B7fDwy2kDLM8dmlzvIRRCmJzg4zldbr2zEwrrT2PURyjmmpziOq0Y/pBgFoqL1AW55I
+ 51FRVu+k+D2+t/DqQ6xBzL6lXEQ1hkDJnJuK1sUBa7aR9Acc0CItsZ9BQiuOB5nKnZvBtZ+9pI2N
+ 64wF9dOsOtVM8WqWhg30fR9rOCapcOzLjCDTITaKnsq/QuKxlPFi8chX+9jxQHASeDhkxnWT1F4d
+ OCuyy7KZnjT3AMIuMj3b2CjyM/uERr9mErfXuwmBz1kBU6t450c70nYAc8PIbiufibvNiRbDkNZK
+ O4qcgcE3YEesxir/3Qz4tX/7MWbyr8E74XCyAcD+rPzHsG8NzFTkdj6DNWMe+ow3MuO79byqDfhS
+ ox0shAska7V7r9hh6hrLN9tY4mAONKY7A0fHrGjIeGZBb9tqONJbtnoiZXIcoQTLy+Yd4NF3chyx
+ UfNIbv4BAAD//wMAQ3SrFJYSAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d272b4c993bd2809ff0c6f4c226c9a1a"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 103.3
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/mnn5g3cd/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIAEJ7yFcAA9xYTW/jNhC951cEvjOSbMfrLBQtWhQFCrQ9dDc97CWgqLHFWCK1JOXY++s7FCVZ
+ iqgklwUWvVkzj0POcD4eHX86lcX1EZTmUtwvoptwcQ2CyYyL/f3i4cvvZLv4lFzFRlGhKTOISq6u
+ r2OeJaUQt/sVy+IAP6xMG2pqneg6LbkxkD3upHrUYEwBJQgTBy3AYs25gkTTAuKg+WllrFYK9z4T
+ riXBI0Dy8Pm3OJiKLZiWshYmicLVzSqMg/bTakpQLKfCEMqYFRI8njbp3WH94fv39GmpNrdPceBD
+ NU7UKfHorgUv7hdG1bAI3C5UG1DvgkqVIdKjYAooxolQc22DcL/I8NPwEhbJMow2JLwjYfQluvsY
+ Lj8ub79iKPoFzfq6yt6/foPrLwvagGsj0QP74e40itbr1e1y3d0pSndcaUMELeHl+VFZ0Hkdk2VF
+ xdmjgZLywiN/hlRz47NV5VL45Dt6mkQ1GLoVp7woMJcvLq6ff6xz2igAzIcsU6C1z/uTAZHZW5iF
+ FJLRghufeQV7rEFfiCSWV+EK5G4dhR/iYCjqjo05qs7zXjm1XUFoUeV0+S7U6i2UqPE+OJve1eB6
+ 0LVdLTJfofQa3SY6VYqeR0qM56BH+YxUVBmO4bh0pBcrfMZpbXKp+Pe3zQ/MptSw3IvJeVUNs9GX
+ 0v/LlHwlQX6aXBzeTtsbyY5DkenOH5tBjFfUjYslVthYMmg/g5UxPWoCSklFMLiVFBq8MWlwg5iN
+ 0clfOOVeBXQmxtf9AvSHs/IqpvH/eJyunAotdI8z5ZmeUfMErjxwTOlpRsSVkgx3wzh0ZUUbeGPp
+ 183XP//5jCF9DTS2Mj5KFIbhcPn0oB6dwdRPfqlQc4TMu7pBNKHNMm5PgsGfwia+HiVn9oJ2ePG4
+ ApMuBTWNSG3pA+7iOMIMytATcQTHq4ITlFVHAVIpC6BikexooS276gEd5UAvCKOqG4FGHkAk6SGv
+ vpUIb76cJuUiWYfRcru1fVoMW9A6ibbbKA7aj7bK0Chp2Ny/XFPMlv676zIVV+4ySylMnkRYQRPh
+ BHsGqpDPLMMRuJG2+7bzntge1TDUh88XFnCRXk6Zy6IJt7/z8JLugdSqSHJjKv0xCKjG7q5vUkW5
+ sIXTZvwNtlxsAWfb9B9LwGzNHgu5l8ER/b+pxP4TiCNXUljAvaYiS+UJ2Udvv20rCiqK3eNvaRPQ
+ /XaaHGhhcjwxUmFxEPJZxMFA5kAZpNxc9O6zVdUKLw6zcF8XlvgNUC81/QyxjBbH5AU6kHVt8Kxk
+ MUB0gjZ8WtfYRXEKisMFM5KOu7LcEaulgkFit5tKuzjJrGZNo71sfZE5UC34txraSkIxRp5jK1bJ
+ esW262iXMbZiq91ms9rc7uAW3w8MtpAyzPHZpc7yEUQpic4OM5XW69sxMK609nVEco5pqc4jqtGP
+ 6QYBaKi9QFueSOdRUVbvpPg9vrfQvrouTGb4EGsQs28pF1GNIVAy56aidXHAmm0k/QEHtEhL7GeQ
+ 0IrjQaZy52Yw9fMHu/6eF+nPEIhe0iaJGxEF9fPNOtVM8WqWjw70fUNvyDapkP/IjCDlIzamnhb4
+ AonHUsaLxSO/2MfOSYIj0UOmM66b6vbqwFmRXbnNNOe5lyC20+nZxkaRqNr/EtCvmQru9W5U4rte
+ wNQq3vnRzvYdwNxUttvKZ+Juc6LFMKS10u6tkIHBx3DHMMcq/90MHhr+7ceYyd8n74TDyQYAB5Xy
+ H8M+ujBTkeT6DNaMed4ReCMzvlvPq9qALzXaCUu4QNZau4ebZRWuwz7aDhsHc6Ax7xs4OqaHQ+o3
+ C3rbVkMW37LVM0qTI5cgWF427wCPvpPjiI2aR3L1HwAAAP//AwA98B7VrRMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"a736d5f8d3236de3d18b052dcfae0cc2"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm103.311443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAER7yFcAA9xYTW/jNhC951cEvjOSbCfrLBQtChQL9NAF2t0t0F4WFDWyGEuklqQce399h6Ik
+ SxGVpIcCRW/WzOOQM5yPR8cfTlV5fQSluRQPq+gmXF2DYDLjYv+w+vrlI9mtPiRXsVFUaMoMopKr
+ 6+uYZ8kufwoPB9jFAX5YmTbUNDqhjSmk4j8gi4NOZLXmXEOiaQlx0P60MtYohbudCdeS4KaQfP38
+ cxzMxRZMK9kIk0Th5mYTxkH3aTUVKFZQYQhlzAoJHkib9P6wfffjR/q4Vne3j3HgQ7XHblLi0V0L
+ Xj6sjGpgFbhdqDag3gSVKkOkR8EUUAMZoebaBuFhleGn4RWsknUY3ZHwnoTRl+j+fbh+v979haEY
+ FrTrmzr7Z+svC7qAayPRA/vhbjGKttvN7Xrb3yJKc660IYJW8Pz8qCzpso7Jqqbi7NFARXnpkT9B
+ qrnx2aoLKXzynJ5mUQ3GbsUpL0vM3ouL26d/1zltFADmQ5Yp0Nrn/cmAyOwtLEJKyWjJjc+8gj1W
+ nS9EEsurdAVyv43Cd3EwFvXHxhxV52WvnNquILSsC7p+E2rzGko0eB+cze9qdD3oWt6IzFcog0Z3
+ iU6VoueJEuM56ko+IzVVhmM4NBhTQgVYrNMVPuOX9vWa+ZHZlBpWeDEFr+txNvpS+n+Zki8kyH8m
+ F8e30/VGknMoM937YzOI8Zq6cbHGCptKRu1ntDKmR01AKakIBreWQoM3Ji1uFLMpOvkVp9yLgN7E
+ 9LqfgX5xVl7EtP4fj/OVc6GF7nGmPNEzah7BlQeOKT3PiLhWkuFuGIe+rGgLby19+v3+45+/YUhf
+ Ak2tTI8ShWE4Xj4/qEdnMPWTn2rUHC1DWUK0oc0ybk+CwZ/DZr4eJWf2gnK8eFyBSZeCmkeksfQB
+ d3EcYQFl6Ik4guNVwQmquqcAqZQlULFKclpqy64GQE850AvCqOpHoJEHEEl6KOrvFcLbL6dJuUi2
+ YbTe7WyfFuMWtE2i3S6Kg+6jqzI0Slo29wfXFLNl+O67TM2Vu8xKClMkEVbQTDjDnoEq5DPrcAJu
+ pd2+3bwntke1nPTr5wsLuEgvpyxk2Ybb33l4RfdAGlUmhTG1fh8EVGN31zepolzYwuky/gZbLraA
+ s2363yrAbM2+lXIvgyP6f1OL/QcQR66ksIAHTUWWyhOyj8F+11YU1BS7xydpE9D9dpoCaGkKPDFS
+ YXEQ8knEwUjmQBmk3Fz07rNTNQovDrNw35SW+I1QzzXDDLGMFsfkBTqS9W3wrGQ5QvSCLnxaN9hF
+ cQqKwwUzkU67ssyJ1VLBILHbzaV9nGTWsLbRXra+yByoEfx7A10loRgjz7EVq2S7YbttlGeMbdgm
+ v7vb3N3mcIvvBwY7SBnm+OJSZ/kIopJEZ4eFShv03RiYVlr3HiIFx7RU5wnVGMZ0iwA01F2gLU+k
+ 86io6jdS/AE/WHjxIdYiFt9SLqIaQ6BkwU1Nm/KANdtKhgOOaJGW2M8goTXHg8zlzs3guZ+DpIuN
+ 64wl9dOsJtVM8XqRho30Qx9rOSapcezLjCDTITaKnsp/hsRjKePF4pGf7WPHA8FJ4OGQGddtUnt1
+ 4KzIPssWetLSAwi7yPxsU6PIz+wTGv1aSNxB7yYEPmcFzK3inR/tSMsBloaR3VY+EXebMy2GIW2U
+ dhQ5A4NvwJ5YTVX+uxnxa//2U8zsX4M3wuFkA4D9WfmPYd8amKnI7XwGG8Y89BlvZMF363ndGPCl
+ RjdYCBdI1hr3XrHD1DWWb7axxMESaEp3Ro5OWdGY8SyCXrfVcqTXbA1EyhQ4QgmWl807wKPnchqx
+ SfNIrv4GAAD//wMAHkOpPpYSAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"eae4d5c17368c3e1ad579ae949f1bded"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 103.3
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/8fw0kke8/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIAER7yFcAA9xY32/bNhB+718R+J2RZDupUygqBgwF9rACW9sB20tAUSeLtUSqJOXY/et3FCVZ
+ iqgkeyhQ7M26+3jkHe/HR8fvT1V5dQSluRT3q+g6XF2BYDLjYn+/+vL5A9mt3idvYqOo0JQZRCVv
+ rq5iniW7/DE8HGAXB/hhZdpQ0+hEN2nFjYHsIZfqQYMxJVQgTBx0AIs15xoSTUuIg/anlbFGKdz7
+ TLiWBI8AyZdPv8bBXGzBtJKNMEkUbq43YRx0n1ZTgWIFFYZQxqyQ4PG0Se8O27ffv6df1+r25msc
+ +FCtE01KPLorwcv7lVENrAK3C9UG1KugUmWI9CiYAopxItRc2SDcrzL8NLyCVbIOo1sS3pEw+hzd
+ vQvX79a7fzAUw4J2fVNn/239ZUEXcG0kemA/3J1G0Xa7uVlv+ztFac6VNkTQCp6eH5UlXdYxWdVU
+ nD0aqCgvPfJHSDU3Plt1IYVPntPTLKrB2K045WWJuXxxcfv4Y53TRgFgPmSZAq193p8MiMzewiKk
+ lIyW3PjMK9hjDfpCJLG8Slcgd9sofBsHY1F/bMxRdV72yqntCkLLuqDrV6E2L6FEg/fB2fyuRteD
+ ruWNyHyFMmh0l+hUKXqeKDGeox7lM1JTZTiG49KRnqzwGaeNKaTi3182PzKbUsMKL6bgdT3ORl9K
+ /y9T8pkE+WlycXw7XW8kOYcy070/NoMYr6kbF2ussKlk1H5GK2N61ASUkopgcGspNHhj0uJGMZui
+ k99xyj0L6E1Mr/sJ6Ddn5VlM6//xOF85F1roHmfKIz2j5iu48sAxpecZEddKMtwN49CXFW3hraWP
+ f959+PsPDOlzoKmV6VGiMAzHy+cH9egMpn7yS42aI2Te1S2iDW2WcXsSDP4cNvP1KDmzF5TjxeMK
+ TLoU1DwijaUPuIvjCAsoQ0/EERyvCk5Q1T0FSKUsgYpVktNSW3Y1AHrKgV4QRlU/Ao08gEjSQ1F/
+ qxDefjlNykWyDaP1bmf7tBi3oG0S7XZRHHQfXZWhUdKyub+4ppgtw3ffZWqu3GVWUpgiibCCZsIZ
+ 9gxUIZ9ZhxNwK+327eY9sT2qZahfPl1YwEV6OWUhyzbc/s7DK7oH0qgyKYyp9bsgoBq7u75OFeXC
+ Fk6X8dfYcrEFnG3Tf6gAszV7KOVeBkf0/7oW+/cgjlxJYQH3mooslSdkH4P9rq0oqCl2j4/SJqD7
+ 7TQF0NIUeGKkwuIg5KOIg5HMgTJIubno3WenahReHGbhvikt8RuhnmqGGWIZLY7JC3Qk69vgWcly
+ hOgFXfi0brCL4hQUhwtmIp12ZZkTq6WCQWK3m0v7OMmsYW2jvWx9kTlQI/i3BrpKQjFGnmMrVsl2
+ w3bbKM8Y27BNfnu7ub3J4QbfDwx2kDLM8cWlzvIRRCWJzg4LlTbouzEwrbTudUQKjmmpzhOqMYzp
+ FgFoqLtAW55I51FR1a+k+AN+sNC9ui5MZvwQaxGLbykXUY0hULLgpqZNecCabSXDAUe0SEvsZ5DQ
+ muNB5nLnZjD38we7/poX6c8QiEHSJYkbESX1880m1UzxepGPjvRDQ2/JNqmR/8iMIOUjNqaeFvgE
+ icdSxovFIz/Zx85JgiPRQ6Yzrtvq9urAWZF9uS0056WXILbT+dmmRpGo2v8S0K+FCh70blTiu17A
+ 3Cre+dHO9hxgaSrbbeUjcbc502IY0kZp91bIwOBjuGeYU5X/bkYPDf/2U8zs75NXwuFkA4CDSvmP
+ YR9dmKlIcn0GG8Y87wi8kQXfred1Y8CXGt2EJVwga23cw82yCtdhH2yHjYMl0JT3jRyd0sMx9VsE
+ vWyrJYsv2RoYpSmQSxAsL5t3gEfP5TRik+aRvPkXAAD//wMABr/rC60TAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"ce0ce4804d32bd4fcbfd1c015d2f64fb"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm103.311443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAEZ7yFcAA9xYS2/jNhC+768IfGck2U7WCRQFBYoFemhRYB8FegkoamRxLZFaknLs/fUdipIs
+ RVSSS4GiN2vm45AznMdHx4+nqrw6gtJciodVdB2urkAwmXGxf1h9/fKJ7FaPyYfYKCo0ZQZRyYer
+ q5hnSZhXh+fN7nsc4IeVaUNNoxPamEIq/hOyOOhEVmvONSSalhAH7U8rY41SuNuZcC0JbgrJ18+/
+ xsFcbMG0ko0wSRRurjdhHHSfVlOBYgUVhlDGrJDggbRJ7w7bjz9/pt/X6vYGT+lDtcduUuLRXQle
+ PqyMamAVuF2oNqDeBZUqQ6RHwRRQAxmh5soG4WGV4afhFaySdRjdkvCOhNGX6O4+XN+v7/7GUAwL
+ 2vVNnb17/SbE9ZcFXcC1keiB/XC3GEXb7eZmve1vEaU5V9oQQSt4eX5UlnRZx2RVU3H2aKCivPTI
+ nyHV3Phs1YUUPnlOT7OoBmO34pSXJWbvxcXt87/rnDYKAPMhyxRo7fP+ZEBk9hYWIaVktOTGZ17B
+ HqvOFyKJ5VW6ArnbRuHHOBiL+mNjjqrzsldObVcQWtYFXb8LtXkLJRq8D87mdzW6HnQtb0TmK5RB
+ o7tEp0rR80SJ8Rx1JZ+RmirDMRwajCmhAizW6Qqf8Uv7esv8yGxKDSu8mILX9TgbfSn9v0zJVxLk
+ P5OL49vpeiPJOZSZ7v2xGcR4Td24WGOFTSWj9jNaGdOjJqCUVASDW0uhwRuTFjeK2RSd/I5T7lVA
+ b2J63S9Avzkrr2Ja/4/H+cq50EL3OFOe6Rk138GVB44pPc+IuFaS4W4Yh76saAtvLf31+dPuzy8Y
+ 0tdAUyvTo0RhGI6Xzw/q0RlM/eSXGjVHy1CWEG1os4zbk2Dw57CZr0fJmb2gHC8eV2DSpaDmEWks
+ fcBdHEdYQBl6Io7geFVwgqruKUAqZQlUrJKcltqyqwHQUw70gjCq+hFo5AFEkh6K+keF8PbLaVIu
+ km0YrXc726fFuAVtk2i3i+Kg++iqDI2Sls1945pitgzffZepuXKXWUlhiiTCCpoJZ9gzUIV8Zh1O
+ wK2027eb98T2qJaTfv18YQEX6eWUhSzbcPs7D6/oHkijyqQwptb3QUA1dnd9nSrKhS2cLuOvseVi
+ Czjbpv9UAWZr9lTKvQyO6P91LfaPII5cSWEBD5qKLJUnZB+D/a6tKKgpdo8/pE1A99tpCqClKfDE
+ SIXFQchnEQcjmQNlkHJz0bvPTtUovDjMwn1TWuI3Qr3UDDPEMlockxfoSNa3wbOS5QjRC7rwad1g
+ F8UpKA4XzEQ67coyJ1ZLBYPEbjeX9nGSWcPaRnvZ+iJzoEbwHw10lYRijDzHVqyS7YbttlGeMbZh
+ m/z2dnN7k8MNvh8Y7CBlmOOLS53lI4hKEp0dFipt0HdjYFpp3XuIFBzTUp0nVGMY0y0C0FB3gbY8
+ kc6joqrfSfEH/GDh1YdYi1h8S7mIagyBkgU3NW3KA9ZsKxkOOKJFWmI/g4TWHA8ylzs3g5d+DpIu
+ Nq4zltRPs5pUM8XrRRo20g99rOWYpMaxLzOCTIfYKHoq/wUSj6WMF4tHfrGPHQ8EJ4GHQ2Zct0nt
+ 1YGzIvssW+hJSw8g7CLzs02NIj+zT2j0ayFxB72bEPicFTC3ind+tCMtB1gaRnZb+Uzcbc60GIa0
+ UdpR5AwMvgF7YjVV+e9mxK/9208xs38N3gmHkw0A9mflP4Z9a2CmIrfzGWwY89BnvJEF363ndWPA
+ lxrdYCFcIFlr3HvFDlPXWJ5sY4mDJdCU7owcnbKiMeNZBL1tq+VIb9kaiJQpcIQSLC+bd4BHz+U0
+ YpPmkXz4BwAA//8DAKac5xCWEgAA
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"f0345214bfbf2370e35d056eb8cffe02"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 103.3
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/0fmkw38j/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIAEZ7yFcAA9xYS2/bOBC+91cEvjOSbCd1AkXFAosCe9jFAn0ssJeAokYWa4lUScqx++t3KEqy
+ FFFJLgWKvVkzH4ec4Tw+Ov5wqsqrIyjNpXhYRdfh6goEkxkX+4fVl88fyW71IXkXG0WFpswgKnl3
+ dRXzLAnz6vC02X2LA/ywMm2oaXSim7TixkD2mEv1qMGYEioQJg46gMWacw2JpiXEQfvTylijFO59
+ JlxLgkeA5Mun3+NgLrZgWslGmCQKN9ebMA66T6upQLGCCkMoY1ZI8HjapHeH7fsfP9Jva3V7g2f2
+ oVonmpR4dFeClw8roxpYBW4Xqg2oN0GlyhDpUTAFFONEqLmyQXhYZfhpeAWrZB1GtyS8I2H0Obq7
+ D9f367t/MRTDgnZ9U2dvXr8Jcf1lQRdwbSR6YD/cnUbRdru5WW/7O0VpzpU2RNAKnp8flSVd1jFZ
+ 1VScPRqoKC898idINTc+W3UhhU+e09MsqsHYrTjlZYm5fHFx+/RzndNGAWA+ZJkCrX3enwyIzN7C
+ IqSUjJbc+Mwr2GMN+kIksbxKVyB32yh8HwdjUX9szFF1XvbKqe0KQsu6oOs3oTavoUSD98HZ/K5G
+ 14Ou5Y3IfIUyaHSX6FQpep4oMZ6jHuUzUlNlOIbj0pGerfAZp40ppOI/Xjc/MptSwwovpuB1Pc5G
+ X0r/L1PyhQT5ZXJxfDtdbyQ5hzLTvT82gxivqRsXa6ywqWTUfkYrY3rUBJSSimBwayk0eGPS4kYx
+ m6KTP3HKvQjoTUyv+xnoD2flRUzr//E4XzkXWugeZ8oTPaPmG7jywDGl5xkR10oy3A3j0JcVbeGt
+ pX8+fdz9/RlD+hJoamV6lCgMw/Hy+UE9OoOpn/xWo+YImXd1i2hDm2XcngSDP4fNfD1KzuwF5Xjx
+ uAKTLgU1j0hj6QPu4jjCAsrQE3EEx6uCE1R1TwFSKUugYpXktNSWXQ2AnnKgF4RR1Y9AIw8gkvRQ
+ 1N8rhLdfTpNykWzDaL3b2T4txi1om0S7XRQH3UdXZWiUtGzuK9cUs2X47rtMzZW7zEoKUyQRVtBM
+ OMOegSrkM+twAm6l3b7dvCe2R7UM9cunCwu4SC+nLGTZhtvfeXhF90AaVSaFMbW+DwKqsbvr61RR
+ LmzhdBl/jS0XW8DZNv3HCjBbs8dS7mVwRP+va7H/AOLIlRQW8KCpyFJ5QvYx2O/aioKaYvf4S9oE
+ dL+dpgBamgJPjFRYHIR8EnEwkjlQBik3F7377FSNwovDLNw3pSV+I9RzzTBDLKPFMXmBjmR9Gzwr
+ WY4QvaALn9YNdlGcguJwwUyk064sc2K1VDBI7HZzaR8nmTWsbbSXrS8yB2oE/95AV0koxshzbMUq
+ 2W7YbhvlGWMbtslvbze3Nznc4PuBwQ5Shjm+uNRZPoKoJNHZYaHSBn03BqaV1r2OSMExLdV5QjWG
+ Md0iAA11F2jLE+k8Kqr6jRR/wA8WulfXhcmMH2ItYvEt5SKqMQRKFtzUtCkPWLOtZDjgiBZpif0M
+ ElpzPMhc7twM5n7+ZNff8iL9FQIxSLokcSOipH6+2aSaKV4v8tGRfmjoLdkmNfIfmRGkfMTG1NMC
+ nyHxWMp4sXjkZ/vYOUlwJHrIdMZ1W91eHTgrsi+3hea89BLEdjo/29QoElX7XwL6tVDBg96NSnzX
+ C5hbxTs/2tmeAyxNZbutfCLuNmdaDEPaKO3eChkYfAz3DHOq8t/N6KHh336Kmf198kY4nGwAcFAp
+ /zHsowszFUmuz2DDmOcdgTey4Lv1vG4M+FKjm7CEC2StjXu4WVbhOuyj7bBxsASa8r6Ro1N6OKZ+
+ i6DXbbVk8TVbA6M0BXIJguVl8w7w6LmcRmzSPJJ3/wEAAP//AwBvlO9ZrRMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"ae279914188fec9177be1f422bd378d9"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode bkhpqm103.311443524salefalse2
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions
+ response:
+ body:
+ string: !!binary |
+ H4sIAEh7yFcAA9xYS2/jNhC+768IfGck2U7iLBQtChQFetiiwD4OvQQUNbIYS6SWpBx7f32HoiRL
+ EZWkhwJFb9bMxyFnOI+Pjj+dqvLqCEpzKR5W0XW4ugLBZMbF/mH17etvZLf6lHyIjaJCU2YQlXy4
+ uop5lqyf97DZnvI4wA8r04aaRie0MYVU/CdkcdCJrNaca0g0LSEO2p9WxhqlcLcz4VoS3BSSb19+
+ jYO52IJpJRthkijcXG/COOg+raYCxQoqDKGMWSHBA2mT3h+2dz9/pk9rdXvzFAc+VHvsJiUe3ZXg
+ 5cPKqAZWgduFagPqXVCpMkR6FEwBNZARaq5sEB5WGX4aXsEqWYfRLQnvSRh9je4/huuPm/VfGIph
+ Qbu+qbN/tv6yoAu4NhI9sB/uFqNou93crLf9LaI050obImgFL8+PypIu65isairOHg1UlJce+TOk
+ mhufrbqQwifP6WkW1WDsVpzyssTsvbi4ff53ndNGAWA+ZJkCrX3enwyIzN7CIqSUjJbc+Mwr2GPV
+ +UIksbxKVyD32yi8i4OxqD825qg6L3vl1HYFoWVd0PW7UJu3UKLB++Bsflej60HX8kZkvkIZNLpL
+ dKoUPU+UGM9RV/IZqakyHMOhwZgSKsBina7wGb+0r7fMj8ym1LDCiyl4XY+z0ZfS/8uUfCVB/jO5
+ OL6drjeSnEOZ6d4fm0GM19SNizVW2FQyaj+jlTE9agJKSUUwuLUUGrwxaXGjmE3RyWeccq8CehPT
+ 634B+t1ZeRXT+n88zlfOhRa6x5nyTM+oeQJXHjim9Dwj4lpJhrthHPqyoi28tbS7u//851cM6Wug
+ qZXpUaIwDMfL5wf16AymfvJLjZqjZShLiDa0WcbtSTD4c9jM16PkzF5QjhePKzDpUlDziDSWPuAu
+ jiMsoAw9EUdwvCo4QVX3FCCVsgQqVklOS23Z1QDoKQd6QRhV/Qg08gAiSQ9F/aNCePvlNCkXyTaM
+ 1rud7dNi3IK2SbTbRXHQfXRVhkZJy+a+c00xW4bvvsvUXLnLrKQwRRJhBc2EM+wZqEI+sw4n4Fba
+ 7dvNe2J7VMtJv325sICL9HLKQpZtuP2dh1d0D6RRZVIYU+uPQUA1dnd9nSrKhS2cLuOvseViCzjb
+ pv9YAWZr9ljKvQyO6P91LfafQBy5ksICHjQVWSpPyD4G+11bUVBT7B5/SJuA7rfTFEBLU+CJkQqL
+ g5DPIg5GMgfKIOXmonefnapReHGYhfumtMRvhHqpGWaIZbQ4Ji/Qkaxvg2clyxGiF3Th07rBLopT
+ UBwumIl02pVlTqyWCgaJ3W4u7eMks4a1jfay9UXmQI3gPxroKgnFGHmOrVgl2w3bbaM8Y2zDNvnt
+ 7eb2JocbfD8w2EHKMMcXlzrLRxCVJDo7LFTaoO/GwLTSuvcQKTimpTpPqMYwplsEoKHuAm15Ip1H
+ RVW/k+IP+MHCqw+xFrH4lnIR1RgCJQtuatqUB6zZVjIccESLtMR+BgmtOR5kLnduBi/9HCRdbFxn
+ LKmfZjWpZorXizRspB/6WMsxSY1jX2YEmQ6xUfRU/gskHksZLxaP/GIfOx4ITgIPh8y4bpPaqwNn
+ RfZZttCTlh5A2EXmZ5saRX5mn9Do10LiDno3IfA5K2BuFe/8aEdaDrA0jOy28pm425xpMQxpo7Sj
+ yBkYfAP2xGqq8t/NiF/7t59iZv8avBMOJxsA7M/Kfwz71sBMRW7nM9gw5qHPeCMLvlvP68aALzW6
+ wUK4QLLWuPeKHaausTzaxhIHS6Ap3Rk5OmVFY8azCHrbVsuR3rI1EClT4AglWF427wCPnstpxCbN
+ I/nwNwAAAP//AwD5mvSYlhIAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"d597185d3671086a75f4609ffd883333"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 201, message: Created}
+- request:
+ body: 103.3
+ headers: {}
+ method: PUT
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/2wge34xf/submit_for_settlement
+ response:
+ body:
+ string: !!binary |
+ H4sIAEl7yFcAA9xYTW/jNhC9768IfGck2U7iLBQtChQFetiiwO720EtAUSOLsURqScqx99d3KEqy
+ FFFJgKLAojdr5nHIGc7Ho+NPp6q8OoLSXIqHVXQdrq5AMJlxsX9Yffv6G9mtPiUfYqOo0JQZRCUf
+ rq5iniXr5z1stqc8DvDDyrShptGJbtKKGwPZYy7VowZjSqhAmDjoABZrzjUkmpYQB+1PK2ONUrj3
+ mXAtCR4Bkm9ffo2DudiCaSUbYZIo3FxvwjjoPq2mAsUKKgyhjFkhweNpk94ftnc/fqRPa3V78xQH
+ PlTrRJMSj+5K8PJhZVQDq8DtQrUB9S6oVBkiPQqmgGKcCDVXNggPqww/Da9glazD6JaE9ySMvkb3
+ H8P1x836bwzFsKBd39TZ+9dvcP1lQRdwbSR6YD/cnUbRdru5WW/7O0VpzpU2RNAKXp4flSVd1jFZ
+ 1VScPRqoKC898mdINTc+W3UhhU+e09MsqsHYrTjlZYm5fHFx+/zfOqeNAsB8yDIFWvu8PxkQmb2F
+ RUgpGS258ZlXsMca9IVIYnmVrkDut1F4FwdjUX9szFF1XvbKqe0KQsu6oOt3oTZvoUSD98HZ/K5G
+ 14Ou5Y3IfIUyaHSX6FQpep4oMZ6jHuUzUlNlOIbj0pFerPAZp40ppOI/3jY/MptSwwovpuB1Pc5G
+ X0r/L1PylQT5aXJxfDtdbyQ5hzLTvT82gxivqRsXa6ywqWTUfkYrY3rUBJSSimBwayk0eGPS4kYx
+ m6KTzzjlXgX0JqbX/QL0u7PyKqb1/3icr5wLLXSPM+WZnlHzBK48cEzpeUbEtZIMd8M49GVFW3hr
+ aXd3//nPrxjS10BTK9OjRGEYjpfPD+rRGUz95JcaNUfIvKtbRBvaLOP2JBj8OWzm61FyZi8ox4vH
+ FZh0Kah5RBpLH3AXxxEWUIaeiCM4XhWcoKp7CpBKWQIVqySnpbbsagD0lAO9IIyqfgQaeQCRpIei
+ /l4hvP1ympSLZBtG693O9mkxbkHbJNrtojjoProqQ6OkZXN/cU0xW4bvvsvUXLnLrKQwRRJhBc2E
+ M+wZqEI+sw4n4Fba7dvNe2J7VMtQv325sICL9HLKQpZtuP2dh1d0D6RRZVIYU+uPQUA1dnd9nSrK
+ hS2cLuOvseViCzjbpv9YAWZr9ljKvQyO6P91LfafQBy5ksICHjQVWSpPyD4G+11bUVBT7B5/SJuA
+ 7rfTFEBLU+CJkQqLg5DPIg5GMgfKIOXmonefnapReHGYhfumtMRvhHqpGWaIZbQ4Ji/Qkaxvg2cl
+ yxGiF3Th07rBLopTUBwumIl02pVlTqyWCgaJ3W4u7eMks4a1jfay9UXmQI3g3xvoKgnFGHmOrVgl
+ 2w3bbaM8Y2zDNvnt7eb2JocbfD8w2EHKMMcXlzrLRxCVJDo7LFTaoO/GwLTSutcRKTimpTpPqMYw
+ plsEoKHuAm15Ip1HRVW/84kw4AcL3avrwmTGD7EWsfiWchHVGAIlC25q2pQHrNlWMhxwRIu0xH4G
+ Ca05HmQud24Gcz//veub11x/z4v0ZwjEIOmSxI2Ikvr5ZpNqpni9yEdH+qGht2Sb1Mh/ZEaQ8hEb
+ U08LfIHEYynjxeKRX+xj5yTBkegh0xnXbXV7deCsyL7cFprz0ksQ2+n8bFOjSFTtfwno10IFD3o3
+ KvFdL2BuFe/8aGd7DrA0le228pm425xpMQxpo7R7K2Rg8DHcM8ypyn83o4eGf/spZvb3yTvhcLIB
+ wEGl/Mewjy7MVCS5PoMNY553BN7Igu/W87ox4EuNbsISLpC1Nu7hZlmF67CPtsPGwRJoyvtGjk7p
+ 4Zj6LYLettWSxbdsDYzSFMglCJaXzTvAo+dyGrFJ80g+/AMAAP//AwBcOgs5rRMAAA==
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"dba040684775529b7b361d2716c134a6"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+- request:
+ body: !!python/unicode - authorized
+ headers: {}
+ method: POST
+ uri: https://api.sandbox.braintreegateway.com:443/merchants/j9gwdfjdkxymhdgr/transactions/advanced_search_ids
+ response:
+ body:
+ string: !!binary |
+ H4sIAEt7yFcAA7IpTk0sSs7QLUotLs0pKbbjUlCwKUhMT9UtzqxKVSipLEi1VcrMK0lNTy1SsjM1
+ sNGHS4KVZqYUQxUlFhUlViqBBfWBonZcNvroRgMAAAD//wMA9crnoGwAAAA=
+ headers:
+ cache-control: ['max-age=0, private, must-revalidate']
+ content-encoding: [gzip]
+ content-type: [application/xml; charset=utf-8]
+ etag: [W/"46a39c0cf7b771e6db3d924b88ce724c"]
+ strict-transport-security: [max-age=31536000; includeSubDomains]
+ transfer-encoding: [chunked]
+ vary: [Accept-Encoding]
+ status: {code: 200, message: OK}
+version: 1
diff --git a/tests/py/test_billing_exchanges.py b/tests/py/test_billing_exchanges.py
index 26616c986c..d23b6519bc 100644
--- a/tests/py/test_billing_exchanges.py
+++ b/tests/py/test_billing_exchanges.py
@@ -12,37 +12,49 @@
capture_card_hold,
create_card_hold,
record_exchange,
- record_exchange_result
+ record_exchange_result,
+ get_ready_payout_routes_by_network
)
+from gratipay.billing.payday import Payday
from gratipay.exceptions import NegativeBalance, NotWhitelisted
from gratipay.models.exchange_route import ExchangeRoute
from gratipay.testing import Foobar, Harness, D,P
from gratipay.testing.billing import BillingHarness
-class TestCardHolds(BillingHarness):
+class TestsWithBillingHarness(BillingHarness):
- # create_card_hold
+ def setUp(self):
+ super(TestsWithBillingHarness, self).setUp()
+ self.hold = None
- def test_create_card_hold_success(self):
- hold, error = create_card_hold(self.db, self.obama, D('1.00'))
- assert isinstance(hold, braintree.Transaction)
- assert hold.status == 'authorized'
- assert hold.amount == D('10.00')
+ def tearDown(self):
+ if self.hold:
+ cancel_card_hold(self.hold)
+ super(TestsWithBillingHarness, self).tearDown()
+
+
+ # cch - create_card_hold
+
+ def test_cch_success(self):
+ self.hold, error = create_card_hold(self.db, self.obama, D('1.00'))
+ assert isinstance(self.hold, braintree.Transaction)
+ assert self.hold.status == 'authorized'
+ assert self.hold.amount == D('10.00')
assert error == ''
assert self.obama.balance == P('obama').balance == 0
- def test_create_card_hold_for_suspicious_raises_NotWhitelisted(self):
+ def test_cch_for_suspicious_raises_NotWhitelisted(self):
bob = self.make_participant('bob', is_suspicious=True,
balanced_customer_href='fake_href')
with self.assertRaises(NotWhitelisted):
create_card_hold(self.db, bob, D('1.00'))
@mock.patch('braintree.Transaction.sale')
- def test_create_card_hold_failure(self, btsale):
+ def test_cch_failure(self, btsale):
btsale.side_effect = Foobar
- hold, error = create_card_hold(self.db, self.obama, D('1.00'))
- assert hold is None
+ self.hold, error = create_card_hold(self.db, self.obama, D('1.00'))
+ assert self.hold is None
assert error == "Foobar()"
exchange = self.db.one("SELECT * FROM exchanges")
assert exchange
@@ -52,7 +64,7 @@ def test_create_card_hold_failure(self, btsale):
assert self.obama.get_credit_card_error() == 'Foobar()'
assert self.obama.balance == P('obama').balance == 0
- def test_create_card_hold_bad_card(self):
+ def test_cch_bad_card(self):
bob = self.make_participant('bob', is_suspicious=False)
customer_id = bob.get_braintree_account().id
result = braintree.PaymentMethod.create({
@@ -64,11 +76,11 @@ def test_create_card_hold_bad_card(self):
# https://developers.braintreepayments.com/ios+python/reference/general/testing#test-amounts
# $2002 is upcharged to $2062, which corresponds to 'Invalid Tax Amount'
- hold, error = create_card_hold(self.db, bob, D('2002.00'))
- assert hold is None
+ self.hold, error = create_card_hold(self.db, bob, D('2002.00'))
+ assert self.hold is None
assert error.startswith('Invalid Tax Amount')
- def test_create_card_hold_multiple_cards(self):
+ def test_cch_multiple_cards(self):
bob = self.make_participant('bob', is_suspicious=False)
customer_id = bob.get_braintree_account().id
@@ -80,73 +92,116 @@ def test_create_card_hold_multiple_cards(self):
assert result.is_success
ExchangeRoute.insert(bob, 'braintree-cc', result.payment_method.token)
- hold, error = create_card_hold(self.db, bob, D('100.00'))
+ self.hold, error = create_card_hold(self.db, bob, D('100.00'))
assert error == ''
- # Clean up
- cancel_card_hold(hold)
-
- def test_create_card_hold_no_card(self):
+ def test_cch_no_card(self):
bob = self.make_participant('bob', is_suspicious=False)
- hold, error = create_card_hold(self.db, bob, D('10.00'))
+ self.hold, error = create_card_hold(self.db, bob, D('10.00'))
assert error == 'No credit card'
- def test_create_card_hold_invalidated_card(self):
+ def test_cch_invalidated_card(self):
bob = self.make_participant('bob', is_suspicious=False)
ExchangeRoute.insert(bob, 'braintree-cc', 'foo', error='invalidated')
- hold, error = create_card_hold(self.db, bob, D('10.00'))
+ self.hold, error = create_card_hold(self.db, bob, D('10.00'))
assert error == 'No credit card'
- # capture_card_hold
- def test_capture_card_hold_full_amount(self):
- hold, error = create_card_hold(self.db, self.obama, D('20.00'))
+ # capch - capture_card_hold
+
+ def test_capch_full_amount(self):
+ self.hold, error = create_card_hold(self.db, self.obama, D('20.00'))
assert error == '' # sanity check
- assert hold.status == 'authorized'
+ assert self.hold.status == 'authorized'
- capture_card_hold(self.db, self.obama, D('20.00'), hold)
- hold = braintree.Transaction.find(hold.id)
+ capture_card_hold(self.db, self.obama, D('20.00'), self.hold)
+ hold = braintree.Transaction.find(self.hold.id)
assert self.obama.balance == P('obama').balance == D('20.00')
assert self.obama.get_credit_card_error() == ''
assert hold.status == 'submitted_for_settlement'
- # Clean up
- cancel_card_hold(hold)
-
- def test_capture_card_hold_partial_amount(self):
- hold, error = create_card_hold(self.db, self.obama, D('20.00'))
+ def test_capch_partial_amount(self):
+ self.hold, error = create_card_hold(self.db, self.obama, D('20.00'))
assert error == '' # sanity check
- capture_card_hold(self.db, self.obama, D('15.00'), hold)
+ capture_card_hold(self.db, self.obama, D('15.00'), self.hold)
assert self.obama.balance == P('obama').balance == D('15.00')
assert self.obama.get_credit_card_error() == ''
- # Clean up
- cancel_card_hold(hold)
-
- def test_capture_card_hold_too_high_amount(self):
- hold, error = create_card_hold(self.db, self.obama, D('20.00'))
+ def test_capch_too_high_amount(self):
+ self.hold, error = create_card_hold(self.db, self.obama, D('20.00'))
assert error == '' # sanity check
with self.assertRaises(Exception):
# How do I check the exception's msg here?
- capture_card_hold(self.db, self.obama, D('20.01'), hold)
+ capture_card_hold(self.db, self.obama, D('20.01'), self.hold)
assert self.obama.balance == P('obama').balance == 0
- # Clean up
- cancel_card_hold(hold)
-
- def test_capture_card_hold_amount_under_minimum(self):
- hold, error = create_card_hold(self.db, self.obama, D('20.00'))
+ def test_capch_amount_under_minimum(self):
+ self.hold, error = create_card_hold(self.db, self.obama, D('20.00'))
assert error == '' # sanity check
- capture_card_hold(self.db, self.obama, D('0.01'), hold)
+ capture_card_hold(self.db, self.obama, D('0.01'), self.hold)
assert self.obama.balance == P('obama').balance == D('9.41')
assert self.obama.get_credit_card_error() == ''
-class TestFees(Harness):
+ # grprbn - get_ready_payout_routes_by_network
+
+ @mock.patch.object(Payday, 'fetch_card_holds')
+ def run_payday(self, fch):
+ fch.return_value = {}
+ Payday.start().run()
+
+ def test_grprbn_that_its_empty_to_start_with(self):
+ assert get_ready_payout_routes_by_network(self.db, 'paypal') == []
+
+ def test_grprbn_includes_team_owners(self):
+ enterprise = self.make_team(is_approved=True)
+ self.obama.set_payment_instruction(enterprise, 100)
+ self.run_payday()
+ routes = get_ready_payout_routes_by_network(self.db, 'paypal')
+ assert [r.participant.username for r in routes] == ['picard']
+
+
+ def run_payday_with_member(self):
+ enterprise = self.make_team(is_approved=True, available=50)
+ enterprise.add_member(self.homer, P('picard'))
+ self.obama.set_payment_instruction(enterprise, 100)
+ self.run_payday()
+ return enterprise
+
+ def test_grprbn_includes_team_members(self):
+ self.run_payday_with_member()
+ routes = get_ready_payout_routes_by_network(self.db, 'paypal')
+ assert list(sorted([r.participant.username for r in routes])) == ['homer', 'picard']
+
+ def test_grprbn_includes_former_team_members(self):
+ enterprise = self.run_payday_with_member()
+ enterprise.remove_member(self.homer, P('picard'))
+ routes = get_ready_payout_routes_by_network(self.db, 'paypal')
+ assert list(sorted([r.participant.username for r in routes])) == ['homer', 'picard']
+
+ def test_grprbn_excludes_member_with_no_verified_identity(self):
+ self.run_payday_with_member()
+ self.homer.clear_identity(self.homer.list_identity_metadata()[0].country.id)
+ routes = get_ready_payout_routes_by_network(self.db, 'paypal')
+ assert [r.participant.username for r in routes] == ['picard']
+
+
+ def test_grprbn_includes_1_0_payouts(self):
+ alice = self.make_participant( 'alice'
+ , balance=24
+ , status_of_1_0_payout='pending-payout'
+ , claimed_time='now'
+ )
+ ExchangeRoute.insert(alice, 'paypal', 'alice@example.com')
+ routes = get_ready_payout_routes_by_network(self.db, 'paypal')
+ assert [r.participant.username for r in routes] == ['alice']
+
+
+class TestsWithoutBillingHarness(Harness):
def prep(self, amount):
"""Given a dollar amount as a string, return a 3-tuple.
@@ -220,9 +275,9 @@ def test_prep_hit_at_nine_forty_two(self):
assert actual == expected
-class TestRecordExchange(Harness):
+ # re - record_exchange
- def test_record_exchange_records_exchange(self):
+ def test_re_records_exchange(self):
alice = self.make_participant('alice', last_bill_result='')
record_exchange( self.db
, ExchangeRoute.from_network(alice, 'braintree-cc')
@@ -243,7 +298,7 @@ def test_record_exchange_records_exchange(self):
}
assert actual == expected
- def test_record_exchange_requires_valid_route(self):
+ def test_re_requires_valid_route(self):
alice = self.make_participant('alice', last_bill_result='')
bob = self.make_participant('bob', last_bill_result='')
with self.assertRaises(AssertionError):
@@ -255,7 +310,7 @@ def test_record_exchange_requires_valid_route(self):
, status='pre'
)
- def test_record_exchange_stores_error_in_note(self):
+ def test_re_stores_error_in_note(self):
alice = self.make_participant('alice', last_bill_result='')
record_exchange( self.db
, ExchangeRoute.from_network(alice, 'braintree-cc')
@@ -268,7 +323,7 @@ def test_record_exchange_stores_error_in_note(self):
exchange = self.db.one("SELECT * FROM exchanges")
assert exchange.note == 'Card payment failed'
- def test_record_exchange_doesnt_update_balance_for_positive_amounts(self):
+ def test_re_doesnt_update_balance_for_positive_amounts(self):
alice = self.make_participant('alice', last_bill_result='')
record_exchange( self.db
, ExchangeRoute.from_network(alice, 'braintree-cc')
@@ -279,7 +334,7 @@ def test_record_exchange_doesnt_update_balance_for_positive_amounts(self):
)
assert P('alice').balance == D('0.00')
- def test_record_exchange_updates_balance_for_negative_amounts(self):
+ def test_re_updates_balance_for_negative_amounts(self):
alice = self.make_participant('alice', balance=50, last_paypal_result='')
record_exchange( self.db
, ExchangeRoute.from_network(alice, 'paypal')
@@ -290,13 +345,13 @@ def test_record_exchange_updates_balance_for_negative_amounts(self):
)
assert P('alice').balance == D('13.41')
- def test_record_exchange_fails_if_negative_balance(self):
+ def test_re_fails_if_negative_balance(self):
alice = self.make_participant('alice', last_paypal_result='')
ba = ExchangeRoute.from_network(alice, 'paypal')
with pytest.raises(NegativeBalance):
record_exchange(self.db, ba, D("-10.00"), D("0.41"), alice, 'pre')
- def test_record_exchange_result_restores_balance_on_error(self):
+ def test_re_result_restores_balance_on_error(self):
alice = self.make_participant('alice', balance=30, last_paypal_result='')
ba = ExchangeRoute.from_network(alice, 'paypal')
e_id = record_exchange(self.db, ba, D('-27.06'), D('0.81'), alice, 'pre')
@@ -304,7 +359,7 @@ def test_record_exchange_result_restores_balance_on_error(self):
record_exchange_result(self.db, e_id, 'failed', 'SOME ERROR', alice)
assert P('alice').balance == D('30.00')
- def test_record_exchange_result_restores_balance_on_error_with_invalidated_route(self):
+ def test_re_result_restores_balance_on_error_with_invalidated_route(self):
alice = self.make_participant('alice', balance=37, last_paypal_result='')
pp = ExchangeRoute.from_network(alice, 'paypal')
e_id = record_exchange(self.db, pp, D('-32.45'), D('0.86'), alice, 'pre')
@@ -315,7 +370,7 @@ def test_record_exchange_result_restores_balance_on_error_with_invalidated_route
assert alice.balance == D('37.00')
assert pp.error == alice.get_paypal_error() == 'invalidated'
- def test_record_exchange_result_doesnt_restore_balance_on_success(self):
+ def test_re_result_doesnt_restore_balance_on_success(self):
alice = self.make_participant('alice', balance=50, last_paypal_result='')
ba = ExchangeRoute.from_network(alice, 'paypal')
e_id = record_exchange(self.db, ba, D('-43.98'), D('1.60'), alice, 'pre')
@@ -323,7 +378,7 @@ def test_record_exchange_result_doesnt_restore_balance_on_success(self):
record_exchange_result(self.db, e_id, 'succeeded', None, alice)
assert P('alice').balance == D('4.42')
- def test_record_exchange_result_updates_balance_for_positive_amounts(self):
+ def test_re_result_updates_balance_for_positive_amounts(self):
alice = self.make_participant('alice', balance=4, last_bill_result='')
cc = ExchangeRoute.from_network(alice, 'braintree-cc')
e_id = record_exchange(self.db, cc, D('31.59'), D('0.01'), alice, 'pre')
diff --git a/tests/py/test_billing_payday.py b/tests/py/test_billing_payday.py
index cb4c43b216..785832adaa 100644
--- a/tests/py/test_billing_payday.py
+++ b/tests/py/test_billing_payday.py
@@ -2,7 +2,6 @@
import os
-import balanced
import braintree
import mock
import pytest
@@ -185,20 +184,6 @@ def test_nusers_includes_dues(self, fch):
nusers = self.db.one("SELECT nusers FROM paydays")
assert nusers == 1
- @pytest.mark.xfail(reason="haven't migrated transfer_takes yet")
- @mock.patch.object(Payday, 'fetch_card_holds')
- @mock.patch('gratipay.billing.payday.create_card_hold')
- def test_ncc_failing(self, cch, fch):
- self.janet.set_tip_to(self.homer, 24)
- fch.return_value = {}
- cch.return_value = (None, 'oops')
- payday = Payday.start()
- before = self.fetch_payday()
- assert before['ncc_failing'] == 0
- payday.payin()
- after = self.fetch_payday()
- assert after['ncc_failing'] == 1
-
@mock.patch('gratipay.billing.payday.log')
def test_start_prepare(self, log):
self.clear_tables()
@@ -372,29 +357,7 @@ def test_payin_cancels_existing_holds_of_insufficient_amounts(self, fch):
assert holds[self.obama.id] is fake_hold
assert hold.status == 'voided'
- @pytest.mark.xfail(reason="Don't think we'll need this anymore since we aren't using balanced, "
- "leaving it here till I'm sure.")
- @mock.patch('gratipay.billing.payday.CardHold')
- @mock.patch('gratipay.billing.payday.cancel_card_hold')
- def test_fetch_card_holds_handles_extra_holds(self, cancel, CardHold):
- fake_hold = mock.MagicMock()
- fake_hold.meta = {'participant_id': 0}
- fake_hold.amount = 1061
- fake_hold.save = mock.MagicMock()
- CardHold.query.filter.return_value = [fake_hold]
- for attr, state in (('failure_reason', 'failed'),
- ('voided_at', 'cancelled'),
- ('debit_href', 'captured')):
- holds = Payday.fetch_card_holds(set())
- assert fake_hold.meta['state'] == state
- fake_hold.save.assert_called_with()
- assert len(holds) == 0
- setattr(fake_hold, attr, None)
- holds = Payday.fetch_card_holds(set())
- cancel.assert_called_with(fake_hold)
- assert len(holds) == 0
-
- @pytest.mark.xfail(reason="haven't migrated transfer_takes yet")
+ @pytest.mark.xfail(reason="turned this off during Gratipocalypse; turn back on!")
@mock.patch('gratipay.billing.payday.log')
def test_payin_cancels_uncaptured_holds(self, log):
self.janet.set_tip_to(self.homer, 42)
@@ -458,94 +421,65 @@ def test_process_payment_instructions(self):
assert payment.amount == D('0.51')
assert payment.direction == 'to-team'
- @pytest.mark.xfail(reason="haven't migrated_transfer_takes yet")
- def test_transfer_takes(self):
- a_team = self.make_participant('a_team', claimed_time='now', number='plural', balance=20)
- alice = self.make_participant('alice', claimed_time='now')
- a_team.add_member(alice)
- a_team.add_member(self.make_participant('bob', claimed_time='now'))
- a_team.set_take_for(alice, D('1.00'), alice)
+ def test_process_remainder(self):
+ alice = self.make_participant('alice', claimed_time='now', balance=100)
+ picard = self.make_participant('picard', claimed_time='now', last_paypal_result='', verified_in='TT', email_address='picard@x.y')
+ crusher = self.make_participant('crusher', claimed_time='now', verified_in='TT', email_address='crusher@x.y')
- payday = Payday.start()
-
- # Test that payday ignores takes set after it started
- a_team.set_take_for(alice, D('2.00'), alice)
-
- # Run the transfer multiple times to make sure we ignore takes that
- # have already been processed
- for i in range(3):
- with self.db.get_cursor() as cursor:
- payday.prepare(cursor)
- payday.transfer_takes(cursor, payday.ts_start)
- payday.update_balances(cursor)
-
- participants = self.db.all("SELECT username, balance FROM participants")
-
- for p in participants:
- if p.username == 'a_team':
- assert p.balance == D('18.99')
- elif p.username == 'alice':
- assert p.balance == D('1.00')
- elif p.username == 'bob':
- assert p.balance == D('0.01')
- else:
- assert p.balance == 0
-
- def test_process_draws(self):
- alice = self.make_participant('alice', claimed_time='now', balance=1)
- picard = self.make_participant('picard', claimed_time='now', last_paypal_result='')
- Enterprise = self.make_team('The Enterprise', picard, is_approved=True)
- alice.set_payment_instruction(Enterprise, D('0.51'))
+ Enterprise = self.make_team('The Enterprise', picard, is_approved=True, available=100)
+ Enterprise.add_member(crusher, picard)
+ Enterprise.set_take_for(crusher, 10, crusher)
+ alice.set_payment_instruction(Enterprise, D('80'))
payday = Payday.start()
with self.db.get_cursor() as cursor:
payday.prepare(cursor)
payday.process_payment_instructions(cursor)
- payday.transfer_takes(cursor, payday.ts_start)
- payday.process_draws(cursor)
+ payday.process_takes(cursor, payday.ts_start)
+ payday.process_remainder(cursor)
assert cursor.one("select new_balance from payday_participants "
- "where username='picard'") == D('0.51')
+ "where username='picard'") == D('70')
assert cursor.one("select balance from payday_teams where slug='TheEnterprise'") == 0
payday.update_balances(cursor)
- assert P('alice').balance == D('0.49')
- assert P('picard').balance == D('0.51')
+ assert P('alice').balance == D('20') # Alice had $100 and gave away $80
+ assert P('crusher').balance == D('10') # Crusher had set their take to $10
+ assert P('picard').balance == D('70') # Picard is the owner of the team, recieves what is leftover
- payment = self.db.one("SELECT * FROM payments WHERE direction='to-participant'")
- assert payment.amount == D('0.51')
+ payment_to_team = self.db.one("SELECT amount FROM payments WHERE direction='to-team'")
+ assert payment_to_team == D('80')
- @pytest.mark.xfail(reason="haven't migrated_transfer_takes yet")
- @mock.patch.object(Payday, 'fetch_card_holds')
- def test_transfer_takes_doesnt_make_negative_transfers(self, fch):
- hold = balanced.CardHold(amount=1500, meta={'participant_id': self.janet.id},
- card_href=self.card_href)
- hold.capture = lambda *a, **kw: None
- hold.save = lambda *a, **kw: None
- fch.return_value = {self.janet.id: hold}
- self.janet.update_number('plural')
- self.janet.set_tip_to(self.homer, 10)
- self.janet.add_member(self.david)
- Payday.start().payin()
- assert P('david').balance == 0
- assert P('homer').balance == 10
- assert P('janet').balance == 0
+ payments_to_participant = self.db.all("SELECT participant, amount FROM payments WHERE direction='to-participant' ORDER BY amount DESC")
+ assert payments_to_participant[0].participant == 'picard'
+ assert payments_to_participant[0].amount == D('70')
+ assert payments_to_participant[1].participant == 'crusher'
+ assert payments_to_participant[1].amount == D('10')
- @pytest.mark.xfail(reason="haven't migrated take_over_balances yet")
+ @pytest.mark.xfail(reason="team owners can't be taken over because of #3602")
def test_take_over_during_payin(self):
alice = self.make_participant('alice', claimed_time='now', balance=50)
- bob = self.make_participant('bob', claimed_time='now', elsewhere='twitter')
- alice.set_tip_to(bob, 18)
+ enterprise = self.make_team('The Enterprise', is_approved=True)
+ picard = Participant.from_username(enterprise.owner)
+ self.make_participant('bob', claimed_time='now', elsewhere='twitter')
+ alice.set_payment_instruction(enterprise, 18)
payday = Payday.start()
with self.db.get_cursor() as cursor:
payday.prepare(cursor)
+
+ # bruce takes over picard
bruce = self.make_participant('bruce', claimed_time='now')
- bruce.take_over(('twitter', str(bob.id)), have_confirmation=True)
+ bruce.take_over(('github', str(picard.id)), have_confirmation=True)
payday.process_payment_instructions(cursor)
- bruce.delete_elsewhere('twitter', str(bob.id))
+
+ # billy takes over bruce
+ bruce.delete_elsewhere('twitter', str(picard.id))
billy = self.make_participant('billy', claimed_time='now')
billy.take_over(('github', str(bruce.id)), have_confirmation=True)
+
payday.update_balances(cursor)
payday.take_over_balances()
+
+ # billy ends up with the money
assert P('bob').balance == 0
assert P('bruce').balance == 0
assert P('billy').balance == 18
@@ -568,6 +502,123 @@ def test_payin_dumps_transfers_for_debugging(self, cch, fch):
assert filename.endswith('_payments.csv')
os.unlink(filename)
+
+class TestTakes(BillingHarness):
+
+ tearDownClass = None
+
+ def setUp(self):
+ self.enterprise = self.make_team('The Enterprise', is_approved=True)
+ self.set_available(500)
+ self.picard = P('picard')
+
+ def make_member(self, username, take):
+ member = self.make_participant( username
+ , email_address=username+'@x.y'
+ , claimed_time='now'
+ , verified_in='TT'
+ )
+ self.enterprise.add_member(member, self.picard)
+ self.enterprise.set_take_for(member, take, member)
+ return member
+
+ def set_available(self, available):
+ # hack since we don't have Python API for this yet
+ self.db.run('UPDATE teams SET available=%s', (available,))
+ self.enterprise.set_attributes(available=available)
+
+
+ payday = None
+ def start_payday(self):
+ self.payday = Payday.start()
+
+ def run_through_takes(self):
+ if not self.payday:
+ self.start_payday()
+ with self.db.get_cursor() as cursor:
+ self.payday.prepare(cursor)
+ cursor.run("UPDATE payday_teams SET balance=537")
+ self.payday.process_takes(cursor, self.payday.ts_start)
+ self.payday.update_balances(cursor)
+
+
+ # pt - process_takes
+
+ def test_pt_processes_takes(self):
+ self.make_member('crusher', 150)
+ self.make_member('bruiser', 250)
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D('250.00')
+ assert P('picard').balance == D(' 0.00')
+
+ def test_pt_processes_takes_again(self):
+ # This catches a bug where payday_takes.amount was an int!
+ self.make_member('crusher', D('0.01'))
+ self.make_member('bruiser', D('5.37'))
+ self.run_through_takes()
+ assert P('crusher').balance == D('0.01')
+ assert P('bruiser').balance == D('5.37')
+ assert P('picard').balance == D('0.00')
+
+ def test_pt_ignores_takes_set_after_the_start_of_payday(self):
+ self.make_member('crusher', 150)
+ self.start_payday()
+ self.make_member('bruiser', 250)
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D(' 0.00')
+ assert P('picard').balance == D(' 0.00')
+
+ def test_pt_ignores_takes_that_have_already_been_processed(self):
+ self.make_member('crusher', 150)
+ self.start_payday()
+ self.make_member('bruiser', 250)
+ self.run_through_takes()
+ self.run_through_takes()
+ self.run_through_takes()
+ self.run_through_takes()
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D(' 0.00')
+ assert P('picard').balance == D(' 0.00')
+
+ def test_pt_clips_to_available(self):
+ self.make_member('alice', 350)
+ self.make_member('bruiser', 250)
+ self.make_member('crusher', 150)
+ self.make_member('zorro', 450)
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D('250.00')
+ assert P('alice').balance == D('100.00')
+ assert P('zorro').balance == D(' 0.00')
+ assert P('picard').balance == D(' 0.00')
+
+ def test_pt_clips_to_balance_when_less_than_available(self):
+ self.set_available(1000)
+ self.make_member('alice', 350)
+ self.make_member('bruiser', 250)
+ self.make_member('crusher', 150)
+ self.make_member('zorro', 450)
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D('250.00')
+ assert P('alice').balance == D('137.00')
+ assert P('zorro').balance == D(' 0.00')
+ assert P('picard').balance == D(' 0.00')
+
+ def test_pt_is_happy_to_deal_the_owner_in(self):
+ self.make_member('crusher', 150)
+ self.make_member('bruiser', 250)
+ self.enterprise.set_take_for(self.picard, D('0.01'), self.picard)
+ self.enterprise.set_take_for(self.picard, 200, self.picard)
+ self.run_through_takes()
+ assert P('crusher').balance == D('150.00')
+ assert P('bruiser').balance == D('150.00') # Sorry, bruiser.
+ assert P('picard').balance == D('200.00')
+
+
class TestNotifyParticipants(EmailHarness):
def test_it_notifies_participants(self):