cURL
curl --location --request POST "https://api.kashimi.tech/api/v1/ob/payments"
--header "Content-Type: application/json"
--header "Accept: application/json"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--data '{
"provider": { "id": "123e4567-e89b-12d3-a456-426614174000" },
"paymentScheme": {
"name": "SEPA",
"preferences": { "mode": "INSTANT" }
},
"sender": {
"account": {
"number": {
"type": "IBAN",
"value": "DE89370400440532013000"
},
"currency": "EUR"
},
"address": {
"country": "NL",
"city": "Amsterdam",
"streetName": "Damstraat",
"buildingNumber": "1A",
"postCode": "1012AB"
}
},
"recipient": {
"account": {
"number": {
"type": "IBAN",
"value": "DE89370400440532013000"
}
},
"name": "John Doe",
"address": {
"country": "NL",
"city": "Amsterdam",
"streetName": "Damstraat",
"buildingNumber": "1A",
"postCode": "1012AB"
}
},
"amount": 10,
"currency": "EUR",
"remittanceInformation": {
"type": "UNSTRUCTURED",
"value": "Invoice1234567890"
},
"metadata": {
"redirectUri": "https://example.com/redirect?paymentId=12345",
"psuIpAddress": "84.240.80.120",
"psuUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
"endToEndId": "123456789123456789",
"webhookUrl": "https://example.com/webhook"
}
}'{
"paymentId": "56caec01-85cc-4fc6-8080-cc0f7ed03a7e",
"providerPaymentId": "123456789",
"redirectUrl": "https://example.com/provider/specific/redirect/url",
"createdAt": "2023-04-05T17:02:11.954Z",
"updatedAt": "2023-04-05T17:02:11.954Z",
"status": "PENDING"
}{
"statusCode": 400,
"title": "Bad Request",
"message": "providerId should not be empty, providerId must be a UUID, paymentScheme should not be empty, paymentScheme must be one of the following values: SEPA, recipient must be a non-empty object, amount must not be less than 0.01, amount must be a number conforming to the specified constraints"
}{
"statusCode": 401,
"title": "Unauthorized",
"message": "Unauthorized"
}{
"statusCode": 403,
"title": "Forbidden",
"message": "Access denied"
}{
"title": "Not Found",
"statusCode": 404,
"message": "Provider with this ID was not found."
}{
"title": "Conflict",
"statusCode": 409,
"message": "Payment with this end-to-end ID already exists."
}Payments
Initiate a payment
Creates a new bank payment and returns a redirect URL. Redirect the user to this URL to select their bank, authenticate, and authorize the payment.
POST
/
api
/
v1
/
ob
/
payments
cURL
curl --location --request POST "https://api.kashimi.tech/api/v1/ob/payments"
--header "Content-Type: application/json"
--header "Accept: application/json"
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"
--data '{
"provider": { "id": "123e4567-e89b-12d3-a456-426614174000" },
"paymentScheme": {
"name": "SEPA",
"preferences": { "mode": "INSTANT" }
},
"sender": {
"account": {
"number": {
"type": "IBAN",
"value": "DE89370400440532013000"
},
"currency": "EUR"
},
"address": {
"country": "NL",
"city": "Amsterdam",
"streetName": "Damstraat",
"buildingNumber": "1A",
"postCode": "1012AB"
}
},
"recipient": {
"account": {
"number": {
"type": "IBAN",
"value": "DE89370400440532013000"
}
},
"name": "John Doe",
"address": {
"country": "NL",
"city": "Amsterdam",
"streetName": "Damstraat",
"buildingNumber": "1A",
"postCode": "1012AB"
}
},
"amount": 10,
"currency": "EUR",
"remittanceInformation": {
"type": "UNSTRUCTURED",
"value": "Invoice1234567890"
},
"metadata": {
"redirectUri": "https://example.com/redirect?paymentId=12345",
"psuIpAddress": "84.240.80.120",
"psuUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
"endToEndId": "123456789123456789",
"webhookUrl": "https://example.com/webhook"
}
}'{
"paymentId": "56caec01-85cc-4fc6-8080-cc0f7ed03a7e",
"providerPaymentId": "123456789",
"redirectUrl": "https://example.com/provider/specific/redirect/url",
"createdAt": "2023-04-05T17:02:11.954Z",
"updatedAt": "2023-04-05T17:02:11.954Z",
"status": "PENDING"
}{
"statusCode": 400,
"title": "Bad Request",
"message": "providerId should not be empty, providerId must be a UUID, paymentScheme should not be empty, paymentScheme must be one of the following values: SEPA, recipient must be a non-empty object, amount must not be less than 0.01, amount must be a number conforming to the specified constraints"
}{
"statusCode": 401,
"title": "Unauthorized",
"message": "Unauthorized"
}{
"statusCode": 403,
"title": "Forbidden",
"message": "Access denied"
}{
"title": "Not Found",
"statusCode": 404,
"message": "Provider with this ID was not found."
}{
"title": "Conflict",
"statusCode": 409,
"message": "Payment with this end-to-end ID already exists."
}provider.id is not always required. How you use the provider object depends on your integration:- Custom Bank Selection — pass
provider.idwith the UUID of the bank the PSU selected in your UI. - Hosted Bank Selection — omit
provider.idand passprovider.preferencesinstead (e.g.countryCodes). Kashimi will display its own hosted bank selection screen.
Headers
Body
application/json
Response
The payment object has been stored successfully