Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@transferwise/approve-api-action-helpers

transferwise4kUNLICENSED0.9.5

An http client that handles SCA protected requests gracefully

javascript, sca, security

readme

Approve api action helpers

A tiny library that lets you handle Strong Customer Authentication (SCA) required calls easily.

Read more from our API documentation.

Example

sca-iframe-1

Sequence diagram of the flow

SCA flow diagram

Usage

Installation

Using npm:

  • npm install @transferwise/approve-api-action-helpers

Using CDN and script tags:

  • <script src="https://unpkg.com/@transferwise/approve-api-action-helpers@latest/dist/main.js"></script>

Note that to use this library with Internet Explorer (11) fetch and Promise must be polyfilled. For example: https://polyfill-fastly.io/v3/polyfill.min.js?features=fetch%2CPromise. Comment out the script in the demo (demo/src/inex.html) to see it in action.

Consuming

This library exports a create function for SCA protected requests. It returns a request wrapper that can be used like a regular fetch request. Use it as follows:

import { create, Mode } from '@transferwise/approve-api-action-helpers';

const request = create({ mode: Mode.PRODUCTION });

const res = await request('https://my-backend-api.com/sca-protected-call', { method: 'GET', ... });

When the backend returns that SCA is required, it will run the user through an SCA flow and retry that request. Also, it will throw an error if you get a 4xx or 5xx response.

NB! make sure that your backend proxies 'x-2fa-approval' response header to the frontend and forwards it back to Wise when this library passes it back. Also please reflect the response status (403) back to the frontend.

Configuration options

key optional default alternatives
mode yes Mode.PRODUCTION Mode.SANDBOX

Demo

In /demo directory you'll find a simple demo of the flow.

changelog

v0.9.5

Removed polyfill io

v0.9.4

Update dependencies

v0.9.3

Only version change due to issues with releasing 0.9.2

v0.9.2

Update dependencies

v0.9.1

Update dependencies

v0.9.0

Expose demo

v0.8.1

Fix package installation error

v0.8.0

Send version of the package to the approval page

v0.7.0

Babel configuration change

v0.6.1

Set iframe src to blank before it gets removed

v0.6.0

Production domain switch to wise.com and update dependencies

v0.5.0

Readme cleanup

v0.4.0

Bundle in iFrame resizer for nicer experience