Weavr Additional Factors API
The Additional Factors API from Weavr — 2 operation(s) for additional factors.
The Additional Factors API from Weavr — 2 operation(s) for additional factors.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/weavr-additional-factors-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
version: v1
title: Weavr Embedded Payment Run Additional Factors API
license:
name: private
url: https://weavr.io
x-logo:
url: https://weavr-cdn.s3.eu-central-1.amazonaws.com/weavr-payment-run-logo.png
backgroundColor: '#FFFFFF'
altText: Weavr
description: "Weavr Payment Run Plug-in API provides a simple and flexible way for Embedders to add payment execution capabilities in their application.\n\nBy integrating Weavr Payment Run plug-in API in your application, you can embed banking and payment capabilities within your app to boost productivity for your users in a seamless experience.\n\n# Authentication\nEach request to the API must include an `api_key` that represents your account. You can obtain an API Key by registering for a Embedder account [here](https://portal.weavr.io/register/?plugin=payment-run).\n\nAlmost all endpoints require a secondary authentication token `auth_token` that represents the user for whom the request is being executed.\n\n# Postman Collection\nTo help you get started with your integration, you can download the [Postman](https://postman.com) collection [here](https://sandbox.weavr.io/payment-run/v1/postman). The collection includes the steps you’ll need to follow to integrate Embedded Payment Run within your app. \n\nThe collection makes use of environment variables to pre-fill details associated with your Sandbox account, such as your account’s API Key. You can download your Sandbox Account environment file from the [Sandbox Portal](https://portal.weavr.io/register/?plugin=payment-run).\n"
servers:
- url: https://sandbox.weavr.io/payment-run
description: Sandbox
security:
- apiKey: []
authToken: []
tags:
- name: Additional Factors
paths:
/v1/authentication_factors/otp/{channel}:
post:
operationId: enrolDeviceUsingOtpStepOne
description: 'This is the first step in enrolling the logged-in user''s mobile device, where a one-time password is sent to the device.
_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \"123456\"._
'
summary: Enrol a user device for authentication using one-time passwords
tags:
- Additional Factors
parameters:
- name: channel
in: path
required: true
description: The unique identifier for the channel.
schema:
type: string
enum:
- SMS
description: '- "SMS": The one-time-password is sent as a text message'
responses:
'204':
description: Success - No Content.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'400':
description: Bad Request Error - Your request is invalid.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
maxLength: 255
type: string
description: When present helps to identify and fix the problem.
syntaxErrors:
type: object
description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
properties:
invalidFields:
type: array
items:
type: object
properties:
params:
type: array
items:
type: string
fieldName:
type: string
error:
type: string
enum:
- REQUIRED
- HAS_TEXT
- REQUIRES
- SIZE
- RANGE
- IN
- NOT_IN
- REGEX
- EXACTLY
- AT_LEAST
- AT_MOST
- ALL_OR_NONE
'401':
description: Unauthorized - Your credentials or access token are invalid.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'403':
description: Forbidden - Access to the requested resource or action is forbidden.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
enum:
- INSUFFICIENT_PERMISSIONS
'404':
description: Not found - The requested resource couldn't be found.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
code:
type: string
message:
type: string
'409':
description: Conflict
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
enum:
- CHANNEL_NOT_SUPPORTED
- CHANNEL_ALREADY_REGISTERED
- MOBILE_NUMBER_NOT_AVAILABLE
- MOBILE_NUMBER_INVALID
- MOBILE_COUNTRY_NOT_SUPPORTED
- CREDENTIALS_INACTIVE
'429':
description: Too many requests.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
x-ratelimit-limit:
description: 'Example: `20, 10;w=60, 20;w=3600, 200;w=86400`
The first number (20) is the limit that has been exceeded.
The remaining numbers are the limits that are in force, with ''w'' meaning ''window in seconds''. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)
'
required: true
schema:
type: string
x-ratelimit-reset:
description: The number of seconds until the window is reset.
required: true
schema:
minimum: 0
type: integer
format: int32
'500':
description: Internal Server Error - There is a problem with the server. Please try again later.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'503':
description: Service Unavailable - We're temporarily offline for maintenance. Please try again later.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
default:
description: Error
content:
application/json:
schema:
type: object
properties:
code:
type: string
message:
type: string
/v1/authentication_factors/otp/{channel}/verify:
post:
operationId: enrolDeviceUsingOtpStepTwo
description: 'The second step in enrolling the logged-in user (root or authorised user) to use one-time-passwords to enable verification of transactions.
_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always set to \"123456\"._
'
summary: Verify enrolment of a user device for authentication using one-time passwords
tags:
- Additional Factors
parameters:
- name: channel
in: path
required: true
description: The unique identifier for the channel.
schema:
type: string
enum:
- SMS
description: '- "SMS": The one-time-password is sent as a text message'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- verificationCode
properties:
verificationCode:
type: string
description: The code received by the user on the device.
minLength: 6
maxLength: 6
pattern: ^[0-9]*$
responses:
'204':
description: Success - No Content.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'400':
description: Bad Request Error - Your request is invalid.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
message:
maxLength: 255
type: string
description: When present helps to identify and fix the problem.
syntaxErrors:
type: object
description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
properties:
invalidFields:
type: array
items:
type: object
properties:
params:
type: array
items:
type: string
fieldName:
type: string
error:
type: string
enum:
- REQUIRED
- HAS_TEXT
- REQUIRES
- SIZE
- RANGE
- IN
- NOT_IN
- REGEX
- EXACTLY
- AT_LEAST
- AT_MOST
- ALL_OR_NONE
'401':
description: Unauthorized - Your credentials or access token are invalid.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'403':
description: Forbidden - Access to the requested resource or action is forbidden.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
enum:
- INSUFFICIENT_PERMISSIONS
'404':
description: Not found - The requested resource couldn't be found.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
content:
application/json:
schema:
type: object
properties:
code:
type: string
message:
type: string
'409':
description: Conflict
content:
application/json:
schema:
type: object
properties:
errorCode:
type: string
enum:
- CHANNEL_NOT_SUPPORTED
- CHANNEL_ALREADY_REGISTERED
- VERIFICATION_CODE_EXPIRED
- VERIFICATION_CODE_INVALID
- CREDENTIALS_INACTIVE
- ONE_CHALLENGE_LIMIT_REMAINING
- CHALLENGE_LIMIT_EXCEEDED
'429':
description: Too many requests.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
x-ratelimit-limit:
description: 'Example: `20, 10;w=60, 20;w=3600, 200;w=86400`
The first number (20) is the limit that has been exceeded.
The remaining numbers are the limits that are in force, with ''w'' meaning ''window in seconds''. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)
'
required: true
schema:
type: string
x-ratelimit-reset:
description: The number of seconds until the window is reset.
required: true
schema:
minimum: 0
type: integer
format: int32
'500':
description: Internal Server Error - There is a problem with the server. Please try again later.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
'503':
description: Service Unavailable - We're temporarily offline for maintenance. Please try again later.
headers:
request-ref:
description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
required: true
schema:
type: string
default:
description: Error
content:
application/json:
schema:
type: object
properties:
code:
type: string
message:
type: string
components:
securitySchemes:
apiKey:
name: api-key
type: apiKey
in: header
description: The API Key representing your Weavr account. You can find your API Key in your Weavr Portal in the API Credentials page.
authToken:
type: http
description: The authentication token representing the user. This will be included in the login response object.
scheme: bearer
bearerFormat: JWT
x-tagGroups:
- name: Authentication
tags:
- Tokens
- Passwords
- name: Authorisation
tags:
- Additional Factors
- Step up
- name: Identities
tags:
- Buyers
- Buyer Authorised Users
- name: Payment runs
tags:
- Payment runs
- name: Instruments
tags:
- Linked Accounts
- name: Institutions
tags:
- Institutions
- name: Simulators
tags:
- Simulator
- name: Events
tags:
- Buyers Webhooks
- Payment runs Webhooks
- Linked Accounts Webhooks
- Tokens Webhooks
- Stepup Webhooks
- Authentication Factors Webhooks
- Transactions Webhooks