LCM Customer Onboarding APIs
The LCM Customer Onboarding API is used to onboard Payment Service Providers (PSPs), Token Requestor Aggregators (TRAs), and Acquirers into the LCM system
After successful onboarding, PSPs and TRAs can:
- Create, read, update, and delete merchant records
- Manage merchant subscriptions for supported services and schemes
- Inquire about card status on behalf of onboarded merchants via AAU batch files
- Request tokenization of cards using tokenization services
Authentication
Before you can use the LCM Customer Onboarding APIs, your application must complete the on-boarding process.
You will receive two sets of credentials:
- Sandbox credentials (for test transactions)
- Production credentials (for live transactions)
Each set consists of a Client ID and a Client Secret. The Client Secret is confidential and must not be shared.
To invoke this API you must obtain an OAuth 2.0 access token and send it in the HTTP Authorization header as a Bearer token.
Important: The OAuth2 Token/Revoke endpoints are exposed by the Authorization Server (separate host) and are documented here for convenience. They are not part of the Resource Server paths in this OpenAPI document.
OAuth 2.0
OAuth 2.0 is the industry-standard protocol for authorization. See: RFC 6749.
This API supports OAuth 2.0 with the confidential client type. A confidential client can keep its credentials secret when interacting with the Authorization Server.
OAuth 2.0 defines four roles:
- Resource owner: Entity capable of granting access to a protected resource.
- Resource server: Server hosting protected resources, accepting requests using access tokens.
- Client: An application requesting protected resources on behalf of the resource owner.
- Authorization server: The server issuing access tokens to the client after successful authentication/authorization.
At a high level, the flow is:
- Get an access token from the Authorization Server.
- Use the access token to call this API (the Resource Server).
OAuth 2.0 uses an "authorization grant" to represent the authorization used to obtain an access token. This API supports the Client Credentials grant type.
Authorization Server
Token Endpoint
POST /token
With the Client Credentials grant type, the client requests an access token using only its own credentials. The access token returned for this API is of type Bearer.
Clients should request the minimal necessary scope and lifetime. The Authorization Server may issue an access token with fewer rights than requested.
Generate an access token (Client Credentials grant):
- Obtain a valid
client_idandclient_secret. - Combine them as
client_id:client_secretand Base64-encode the result. - Call the Token Endpoint. Example:
# NOTE: Only use -k in sandbox/test environments if TLS verification cannot be performed.
curl -k -d "grant_type=client_credentials" \
-H "Authorization: Basic <Base64 encoded client_id:client_secret>" \
-H "Content-Type: application/x-www-form-urlencoded" \
https://api-gateway2.nets.eu/token
Example response (access token may be opaque, not necessarily a JWT):
{
"token_type": "Bearer",
"expires_in": 2061,
"access_token": "ca19a540f544777860e44e75f605d927"
}
Note: Per RFC 6749, the Client Credentials grant type does not issue refresh tokens.
Revoke Endpoint
POST /revoke
In case of credential theft or a security incident, revoke an access token using the Revoke Endpoint.
Parameters
token(required): The token to revoke.- Basic Authorization header (required):
Authorization: Basic <Base64 encoded client_id:client_secret> token_type_hint(optional): Useaccess_tokenfor Client Credentials. If omitted, the server searches multiple token spaces and revocation may take longer.
Example:
curl -X POST \
https://api-gateway2.nets.eu/revoke \
-H "Authorization: Basic <Base64 encoded client_id:client_secret>" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=<token_to_be_revoked>&token_type_hint=access_token"
Responses
-
Valid token - HTTP Status 200 - OK You receive an empty response with the HTTP status as 200. The following HTTP headers are returned:
Revokedaccesstoken: a0d210c7a3de7d548e03f1986e9a5c39 Authorizeduser: admin@carbon.super Revokedrefreshtoken: 5e87a8235cd4d066e15c4c989f5ecf94 Content-Type: text/html Pragma: no-cache Cache-Control: no-store Date: Tue, 23 Aug 2018 19:28:52 GMT Transfer-Encoding: chunked -
Invalid token - HTTP Status 200 - OK You still receive an empty response with the HTTP status as 200 but only the following HTTP headers are returned:
Content-Type: text/html Pragma: no-cache Cache-Control: no-store Date: Tue, 23 Aug 2018 19:31:45 GMT Transfer-Encoding: chunkedBecause the authorization server cannot find the token in any key space, you will not see Revokedaccesstoken or Revokedrefreshtoken
API Specification
Content types
Requests must be JSON:
Content-Type: application/json
Clients SHOULD request JSON responses:
Accept: application/json
Responses are JSON:
Content-Type: application/json
Error codes
| Error code | Description |
|---|---|
| AAU-1514 | Invalid Request Format |
| AAU-1516 | Invalid Request Data |
| AAU-1520 | Generic exception |
Scroll down for code samples, example requests and responses.
Select a language for code samples from the tabs or the mobile navigation menu.
Providers
Provider master data used by providers, PSPs, and acquirers.
Onboard Provider
POST /providersCreates a new provider in the LCM system.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
Request body
providerNamestringrequiredexample: Example Group A/S
Request body
{ "providerName": "Example Group A/S" }
Responses
201Provider onboarded successfully.optional
providerIdstringrequiredexample: PROVIDER_100000
providerNamestringrequiredexample: Example Group A/S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 201
{ "errorCode": "AAU-1514" }
Update Provider
PUT /providers/{providerId}Updates the Provider details.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
Request body
providerNamestringrequiredexample: Example Group A/S
Request body
{ "providerName": "Example Group A/S" }
Responses
200Provider updated successfully.optional
providerIdstringrequiredexample: PROVIDER_100000
providerNamestringrequiredexample: Example Group A/S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
Get Provider
GET /providers/{providerId}Returns provider details for the provided Provider ID.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
Responses
200Provider details fetched successfully.optional
providerIdstringrequiredexample: PROVIDER_100000
providerNamestringrequiredexample: Example Group A/S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
PSP
PSP master data used by Providers.
Onboard PSP under provider
POST /providers/{providerId}/pspsCreates a new PSP under the specified provider.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
Request body
pspNamestringrequiredexample: Example Group A/S
acknowledgeTypestringoptional
example: MM,S
Request body
{ "pspName": "Example Group A/S", "acknowledgeType": "M" }
Responses
201PSP created successfully.optional
pspIdstringrequiredexample: PSP_300001
pspNamestringrequiredexample: Example Group A/S
providerIdstringoptionalexample: PROVIDER_100000
acknowledgeTypestringoptional
example: MM,S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 201
{ "errorCode": "AAU-1514" }
List PSPs for a Provider
GET /providers/{providerId}/pspsReturns all PSPs onboarded under the specified provider.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
Responses
200Successful Operation.optional
pspsarrayrequired
pspIdstringrequiredexample: PSP_300001
pspNamestringrequiredexample: Example Group A/S
providerIdstringoptionalexample: PROVIDER_100000
acknowledgeTypestringoptional
example: MM,S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorizedoptional
403Forbiddenoptional
404Not Foundoptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
Update PSP
PUT /providers/{providerId}/psps/{pspId}Updates the PSP details.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
pspIdstringrequired
PSP ID assigned during Onboarding.
Request body
pspNamestringrequiredexample: Example Group A/S
acknowledgeTypestringoptional
example: MM,S
Request body
{ "pspName": "Example Group A/S", "acknowledgeType": "M" }
Responses
200PSP updated successfully.optional
pspIdstringrequiredexample: PSP_300001
pspNamestringrequiredexample: Example Group A/S
providerIdstringoptionalexample: PROVIDER_100000
acknowledgeTypestringoptional
example: MM,S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
Get PSP
GET /providers/{providerId}/psps/{pspId}Returns PSP details for the provided PSP ID.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
providerIdstringrequired
Provider ID assigned during Onboarding.
pspIdstringrequired
PSP ID assigned during Onboarding.
Responses
200PSP details returned successfully.optional
pspIdstringrequiredexample: PSP_300001
pspNamestringrequiredexample: Example Group A/S
providerIdstringoptionalexample: PROVIDER_100000
acknowledgeTypestringoptional
example: MM,S
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
Acquirers
Acquirer master data.
Onboard acquirer
POST /acquirersOnboards a new Acquirer.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
Request body
acquirerNamestringrequiredexample: Example Group A/S
bidstringoptionalexample: 123456
icastringoptionalexample: 654321
segmentIdstringoptionalexample: 2345
billingIdstringoptionalexample: 246468
schemearrayoptional
Namestringrequired
example: DANKORTDANKORT,MASTERCARD,VISABINstringrequiredexample: 530941
Request body
{ "acquirerName": "Example Group A/S", "bid": "123456", "ica": "654321", "segmentId": "2345", "billingId": "246468", "scheme": [ { "Name": "DANKORT", "BIN": "530941" } ] }
Responses
201Acquirer created successfully.optional
acquirerIdstringrequiredexample: ACQ_400001
acquirerNamestringrequiredexample: Example Group A/S
bidstringoptionalexample: 123456
icastringoptionalexample: 654321
segmentIdstringoptionalexample: 346567
billingIdstringoptionalexample: 23435
schemearrayoptional
Namestringrequired
example: DANKORTDANKORT,MASTERCARD,VISABINstringrequiredexample: 530941
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 201
{ "errorCode": "AAU-1514" }
Update Acquirer
PUT /acquirers/{acquirerId}Update Acquirer details
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
acquirerIdstringrequired
Acquirer ID assigned during Onboarding.
Request body
acquirerNamestringrequiredexample: Example Group A/S
bidstringoptionalexample: 123456
icastringoptionalexample: 654321
segmentIdstringoptionalexample: 35367
billingIdstringoptionalexample: 23526
schemearrayoptional
Namestringrequired
example: DANKORTDANKORT,MASTERCARD,VISABINstringrequiredexample: 530941
Request body
{ "acquirerName": "Example Group A/S", "bid": "123456", "ica": "654321", "segmentId": "35367", "billingId": "23526", "scheme": [ { "Name": "DANKORT", "BIN": "530941" } ] }
Responses
200Acquirer updated successfully.optional
acquirerIdstringrequiredexample: ACQ_400001
acquirerNamestringrequiredexample: Example Group A/S
bidstringoptionalexample: 123456
icastringoptionalexample: 654321
segmentIdstringoptionalexample: 346567
billingIdstringoptionalexample: 23435
schemearrayoptional
Namestringrequired
example: DANKORTDANKORT,MASTERCARD,VISABINstringrequiredexample: 530941
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }
Get Acquirer
GET /acquirers/{acquirerId}Returns Acquirer details for the provided Acquirer ID.
Parameters
X-Request-IDstring (uuid)required
End-to-end request correlation identifier generated by the caller. Use a UUID to simplify troubleshooting across distributed systems.
acquirerIdstringrequired
Acquirer ID assigned during Onboarding.
Responses
200Acquirer details returned successfully.optional
acquirerIdstringrequiredexample: ACQ_400001
acquirerNamestringrequiredexample: Example Group A/S
bidstringoptionalexample: 123456
icastringoptionalexample: 654321
segmentIdstringoptionalexample: 346567
billingIdstringoptionalexample: 23435
schemearrayoptional
Namestringrequired
example: DANKORTDANKORT,MASTERCARD,VISABINstringrequiredexample: 530941
400Bad Requestoptional
errorCodestringrequired
example: AAU-1514Error code assigned by the Service.
401Unauthorized Erroroptional
403Forbidden Erroroptional
404NotFound Erroroptional
409Conflict Erroroptional
500Internal Erroroptional
503ServiceUnavailable Erroroptional
- Invalid Request Format
- Invalid Request Data
- Generic Exception
- 200
{ "errorCode": "AAU-1514" }