Install the API using the following command
npm install coherent
Add --save
if building a deployable.
Import and initialise the connection
import {Coherent} from "coherent";
const coherent = new Coherent({
environment: "TEST", // or "PRODUCTION"
token: process.env.COHERENT_TOKEN
})
Create a payment link, notifying an email or phone number optionally
const transaction = await coherent.transactions.create({
amount: 1000, // The amount in the smallest regular unit, e.g. pennies (£10 = 1000)
name: `John Smith`, // The name of the patient,
note: "A test", //optional, what this transaction involves
email: "support@coherenthealthcare.com", //optional
emailNotify: true, //optional, `email` receives payment request notification
phone: "+44...", //optional
smsNotify: true //optional, `phone` receives SMS payment request notification
})
console.log(transaction.uuid)
console.log(transaction.status)
console.log(transaction.paymentUrl)
Get a payment
const transaction = await coherent.transactions.get(
transaction.uuid
)
await coherent.transactions.refund({
transactionUuid: transaction.uuid,
amount: 100,
reason: 'Anything'
})
List terminals
await coherent.terminals.list()
Name the terminal
await coherent.terminals.rename({
terminalId: '<TYPE>-123455678',
name: 'The Trusty Terminal'
})
Send for payment
await coherent.terminals.setTransaction({
terminalId: '<TYPE>-123455678',
transactionUuid: 'abcd-1234'
})
Clear the terminal
await coherent.terminals.clearTransaction({
terminalId: '<TYPE>-123455678'
})
If the merchant has webhooks turned on, they will receive notifications at the configured URL every two minutes until the request receives a 2xx response.
POST https://yourserver.com/webhook
{
type: "transaction",
uuid: "abcd-1234"
}
Use the uuid in a transactions.get(uuid)
request to receive an up-to-date transaction object.