Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions plaid/api/sandbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@ def reset_login(self, access_token):
'access_token': access_token,
})

def fire_webhook(self, access_token, webhook_code):
'''
Fire a webhook for an item

:param str access_token:
:param str webhook_code:
'''
return self.client.post('/sandbox/item/fire_webhook', {
'access_token': access_token,
'webhook_code': webhook_code,
})


class PublicToken(API):
'''Sandbox public token endpoints.'''
Expand Down
18 changes: 18 additions & 0 deletions tests/integration/test_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,24 @@ def test_sandbox_public_token():
create_response['public_token'])
assert exchange_response['access_token'] is not None

def test_sandbox_fire_webhook():
client = create_client()
create_response = client.Sandbox.public_token.create(
SANDBOX_INSTITUTION, ['transactions'], webhook='https://plaid.com/foo/bar/hook')
assert create_response['public_token'] is not None

# public token -> access token
exchange_response = client.Item.public_token.exchange(
create_response['public_token'])
assert exchange_response['access_token'] is not None

# fire webhook
fire_webhook_response = client.Sandbox.item.fire_webhook(
exchange_response['access_token'],
'DEFAULT_UPDATE'
)
assert fire_webhook_response['webhook_fired'] is True


def test_access_token_invalidate():
client = create_client()
Expand Down