callback_url, choose which events to subscribe to, and save; this returns a signing secret used to verify deliveries. There is no partner-API endpoint for this today - it's dashboard-only, not something you can automate from your own backend.X-AmiliPay-Signature header. The delivery time is sent alongside it in the X-AmiliPay-Timestamp header, but the timestamp is not itself part of the signed string.X-AmiliPay-Timestamp is more than 5 minutes old to guard against replay - this is a freshness check on that header's value, not something the signature itself binds.X-AmiliPay-Event (the event type) and X-AmiliPay-Event-Id headers, and a User-Agent: AmiliPay-Webhooks/1.0.INVOICE_PAYMENT_AUTHORIZEDINVOICE_PAYMENT_REFUSEDINVOICE_OVERDUEINVOICE_REFUND_INITIATEDINVOICE_REFUNDEDINVOICE_REFUND_FAILEDINVOICE_CHARGEBACKINVOICE_CHARGEBACK_REVERSEDINVOICE_SECOND_CHARGEBACKINVOICE_RECURRING_INITIATEDINVOICE_RECURRING_TOKEN_DELETEDINVOICE_DELIVERY_SUCCESSINVOICE_DELIVERY_FAILEDINVOICE_PAYMENT_PAID{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-07T13:23:38",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-07T13:23:38",
"deleted_at": null,
"deactivated_at": null,
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_PAYMENT_AUTHORIZED",
"message": "Invoice payment is authorized."
}"2022-02-07T13:23:38"), and an unset date is JSON null, not an empty string. is_recurring is always present (false on non-recurring invoices). details (card summary) appears only once the invoice has been paid. customer_reference is the merchant-supplied reference sent when the invoice was created; it is null when none was supplied.{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-07T13:23:38",
"deleted_at": null,
"deactivated_at": null,
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_PAYMENT_REFUSED",
"message": "Invoice payment was refused."
}message - it's a static string for this event type.{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-07T13:23:38",
"deleted_at": null,
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_OVERDUE",
"message": "Invoice is overdue. Payment is disabled."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-14T17:33:00",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": null,
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_REFUND_INITIATED",
"message": "The refund (amount: 150.00 NOK) has been initiated."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-14T17:33:00",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-15T12:43:00",
"deleted_at": "2022-02-15T12:43:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": "2022-02-15T12:43:00",
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_REFUNDED",
"message": "The refund (amount: 150.00 NOK) has been completed."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-14T17:33:00",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": null,
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_REFUND_FAILED",
"message": "The refund request has failed."
}message is a static string for this event type - it does not carry the specific failure reason (e.g. amount too high).{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": "2022-02-14T17:33:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_CHARGEBACK",
"message": "The payment has been charged back."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-14T17:33:00",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": "2022-02-14T17:33:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_CHARGEBACK_REVERSED",
"message": "The payment chargeback has been reversed."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": "2022-02-14T17:33:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_SECOND_CHARGEBACK",
"message": "The payment has been charged back second time."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": "2022-02-14T17:33:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": true,
"recurring_invoice_id": null
},
"event": "INVOICE_RECURRING_INITIATED",
"message": "Recurring payment initiated - customer must re-authenticate to capture token."
}INVOICE_RECURRING_INITIATED which means that your customer should go to the payment page{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-14T17:33:00",
"deleted_at": "2022-02-14T17:33:00",
"deactivated_at": "2022-02-07T13:23:38",
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": true,
"recurring_invoice_id": null
},
"event": "INVOICE_RECURRING_TOKEN_DELETED",
"message": "Recurring payment token deleted after 10 consecutive failures."
}{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-04T10:19:35",
"deleted_at": null,
"deactivated_at": null,
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_DELIVERY_SUCCESS",
"message": "Invoice was delivered to the customer.",
"delivery_channel": "email"
}delivery_channel field sitting next to data/event/message (not inside data) - it tells you which channel the invoice was sent on. Today it is always "email".INVOICE_DELIVERY_SUCCESS, this event goes to the merchant only, never to a partner account.{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": null,
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-02-04T10:19:35",
"deleted_at": null,
"deactivated_at": null,
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_DELIVERY_FAILED",
"message": "Invoice delivery failed (bounce): The email account does not exist.",
"delivery_channel": "email"
}message here includes the actual failure reason reported by the mail server (e.g. bounce/blocked/dropped), unlike most other invoice events where message is a fixed string. As with the success event, delivery_channel sits next to data, not inside it, and is currently always "email".REPORT_AVAILABLE payout webhook (see Payout webhooks below) and fires once per invoice in that payout, one by one - so a payout settling 6 invoices sends 6 separate INVOICE_PAYMENT_PAID events, each naming exactly one invoice, rather than a single event listing all of them. This means you don't have to cross-reference the payout report yourself.{
"data": {
"unique_id": "O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"account_id": 1,
"invoice_id": "1",
"amount": 15000,
"customer_id": "1",
"customer_reference": "PO-88231",
"name": "FirstName LastName",
"email": "firstname.lastname@mail.com",
"phone": "+4444444444",
"currency": "NOK",
"notify_customer": true,
"reminded": false,
"payment_method": "visa",
"opened": 1,
"language": "no",
"redirect_url": "https://www.customer.com/callback",
"cancel_url": null,
"due_date": "2022-02-08T00:00:00",
"last_payment_date": "2022-02-15T00:00:00",
"paid_at": "2022-02-07T13:23:38",
"created_at": "2022-02-04T10:19:29",
"updated_at": "2022-04-13T15:15:07",
"deleted_at": null,
"deactivated_at": null,
"refunded_at": null,
"payment_url": "http://pay.amili.no/pay-invoice/O5XRLP0Muabxufne6Eb62uFjAvj8D5nog3waANRQEI5Ce7zcC6",
"is_recurring": false,
"recurring_invoice_id": null
},
"event": "INVOICE_PAYMENT_PAID",
"message": "Invoice payment has been paid out."
}data is the same invoice shape used by every other invoice webhook - there is no extra payout information (amount, reference, etc.) in this payload; look those up on the matching REPORT_AVAILABLE event or via the payouts endpoint.ONBOARDING_CREATEDONBOARDING_STATUS_UPDATEDONBOARDING_ERROR_ADDEDONBOARDING_ERROR_REMOVEDONBOARDING_PROCESSING_FAILED{
"data": {
"id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"account_id": 3,
"status": "STARTED",
"status_changed_at": "2022-02-08 09:21:28",
"ownership_category": "ownership_no_major",
"company": {
"id": "8f14e45f-ceea-467e-bd7b-6a35c5d18ea9",
"industry_category": "0763",
"tax_id": "116963",
"registration_code": "64543302",
"address": {
"city": "Oslo",
"country": "AO",
"street_address": "Sæffleberggate 56",
"zip": "0563"
},
"average_transaction": "250",
"average_daily_transactions": "5",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"payout": {
"id": "c9b1c1c1-6f2a-4f2a-8e2a-1a2b3c4d5e6f",
"account_name": "Payout account",
"bic": "NORWNOK1",
"iban": "NO1111111111111",
"currency": "NOK",
"country": "NO",
"city": "Oslo",
"name": "Bank",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"shareholders": [
{
"id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a",
"role": "procurator",
"is_signatory": true,
"ownership_percentage": 0,
"procurator_is_confirmed": true,
"first_name": "John",
"last_name": "Doe",
"gender": "male",
"date_of_birth": "1966-01-31",
"job_title": null,
"address": {
"city": "Oslo",
"country": "NO",
"street_address": "Sæffleberggate 56",
"zip": "0563",
"phone": "040123456"
},
"email": "customer@com.com",
"nationality": "NO",
"documentation": null,
"created_at": "2022-02-08 09:22:01",
"updated_at": "2022-02-08 09:22:01"
}
],
"created_at": "2022-02-08 09:21:28",
"updated_at": "2022-02-08 09:21:28"
},
"event": "ONBOARDING_CREATED",
"message": ""
}company/payout/shareholder id values are UUIDs, not integers, and there is no onboarding_id field anywhere inside these nested objects - the onboarding is identified only by the top-level id.{
"data": {
"id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"account_id": 3,
"status": "STARTED",
"status_changed_at": "2022-02-08 09:21:28",
"ownership_category": "ownership_no_major",
"company": {
"id": "8f14e45f-ceea-467e-bd7b-6a35c5d18ea9",
"industry_category": "0763",
"tax_id": "116963",
"registration_code": "64543302",
"address": {
"city": "Oslo",
"country": "AO",
"street_address": "Sæffleberggate 56",
"zip": "0563"
},
"average_transaction": "250",
"average_daily_transactions": "5",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"payout": {
"id": "c9b1c1c1-6f2a-4f2a-8e2a-1a2b3c4d5e6f",
"account_name": "Payout account",
"bic": "NORWNOK1",
"iban": "NO1111111111111",
"currency": "NOK",
"country": "NO",
"city": "Oslo",
"name": "Bank",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"shareholders": [
{
"id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a",
"role": "procurator",
"is_signatory": true,
"ownership_percentage": 0,
"procurator_is_confirmed": true,
"first_name": "John",
"last_name": "Doe",
"gender": "male",
"date_of_birth": "1966-01-31",
"job_title": null,
"address": {
"city": "Oslo",
"country": "NO",
"street_address": "Sæffleberggate 56",
"zip": "0563",
"phone": "040123456"
},
"email": "customer@com.com",
"nationality": "NO",
"documentation": null,
"created_at": "2022-02-08 09:22:01",
"updated_at": "2022-02-08 09:22:01"
}
],
"created_at": "2022-02-08 09:21:28",
"updated_at": "2022-02-08 09:21:28"
},
"event": "ONBOARDING_STATUS_UPDATED",
"message": "Status changed from PENDING_REVIEW to STARTED"
}data shape as ONBOARDING_CREATED above - there is no separate account_bic/account_iban/account_number/account_bank_city/account_bank_name/account_deposit_currency/trading_name/onboarding_id/ownership_procurator_is_owner field anywhere in the real payload; the previous version of this sample used a stale, no-longer-accurate schema.{
"data": {
"step": "company",
"field": "company-tax_id",
"notes": null,
"created_at": "2022-02-08T08:53:26.000000Z",
"onboarding": {
"id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"account_id": 3,
"status": "STARTED",
"status_changed_at": "2022-02-08 09:21:28",
"ownership_category": "ownership_no_major",
"company": {
"id": "8f14e45f-ceea-467e-bd7b-6a35c5d18ea9",
"industry_category": "0763",
"tax_id": "116963",
"registration_code": "64543302",
"address": {
"city": "Oslo",
"country": "AO",
"street_address": "Sæffleberggate 56",
"zip": "0563"
},
"average_transaction": "250",
"average_daily_transactions": "5",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"payout": {
"id": "c9b1c1c1-6f2a-4f2a-8e2a-1a2b3c4d5e6f",
"account_name": "Payout account",
"bic": "NORWNOK1",
"iban": "NO1111111111111",
"currency": "NOK",
"country": "NO",
"city": "Oslo",
"name": "Bank",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"shareholders": [
{
"id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a",
"role": "procurator",
"is_signatory": true,
"ownership_percentage": 0,
"procurator_is_confirmed": true,
"first_name": "John",
"last_name": "Doe",
"gender": "male",
"date_of_birth": "1966-01-31",
"job_title": null,
"address": {
"city": "Oslo",
"country": "NO",
"street_address": "Sæffleberggate 56",
"zip": "0563",
"phone": "040123456"
},
"email": "customer@com.com",
"nationality": "NO",
"documentation": null,
"created_at": "2022-02-08 09:22:01",
"updated_at": "2022-02-08 09:22:01"
}
],
"created_at": "2022-02-08 09:21:28",
"updated_at": "2022-02-08 09:21:28"
},
"updated_at": "2022-02-08T08:53:26.000000Z"
},
"event": "ONBOARDING_ERROR_ADDED",
"message": ""
}onboarding uses the same real shape as ONBOARDING_CREATED above - the previous sample's account_bic/trading_name/onboarding_id/ownership_procurator_is_owner fields don't exist in the real payload.{
"data": {
"step": "company",
"field": "company-tax_id",
"notes": null,
"created_at": "2022-02-08T08:53:26.000000Z",
"onboarding": {
"id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"account_id": 3,
"status": "STARTED",
"status_changed_at": "2022-02-08 09:21:28",
"ownership_category": "ownership_no_major",
"company": {
"id": "8f14e45f-ceea-467e-bd7b-6a35c5d18ea9",
"industry_category": "0763",
"tax_id": "116963",
"registration_code": "64543302",
"address": {
"city": "Oslo",
"country": "AO",
"street_address": "Sæffleberggate 56",
"zip": "0563"
},
"average_transaction": "250",
"average_daily_transactions": "5",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"payout": {
"id": "c9b1c1c1-6f2a-4f2a-8e2a-1a2b3c4d5e6f",
"account_name": "Payout account",
"bic": "NORWNOK1",
"iban": "NO1111111111111",
"currency": "NOK",
"country": "NO",
"city": "Oslo",
"name": "Bank",
"documentation": [],
"created_at": "2022-02-08 09:22:14",
"updated_at": "2022-02-08 09:22:14"
},
"shareholders": [
{
"id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a",
"role": "procurator",
"is_signatory": true,
"ownership_percentage": 0,
"procurator_is_confirmed": true,
"first_name": "John",
"last_name": "Doe",
"gender": "male",
"date_of_birth": "1966-01-31",
"job_title": null,
"address": {
"city": "Oslo",
"country": "NO",
"street_address": "Sæffleberggate 56",
"zip": "0563",
"phone": "040123456"
},
"email": "customer@com.com",
"nationality": "NO",
"documentation": null,
"created_at": "2022-02-08 09:22:01",
"updated_at": "2022-02-08 09:22:01"
}
],
"created_at": "2022-02-08 09:21:28",
"updated_at": "2022-02-08 09:21:28"
},
"updated_at": "2022-02-08T08:53:26.000000Z"
},
"event": "ONBOARDING_ERROR_REMOVED",
"message": ""
}onboarding uses the same real shape as ONBOARDING_CREATED above.step is one of organization_legal_entity, shareholder_legal_entity, bank_transfer_instrument, document_upload, or business_line, identifying which part of the submission failed. onboarding_id is the onboarding's internal numeric identifier, not the UUID id used by the onboarding endpoints elsewhere in this API - there is currently no way to resolve one from the other via a public endpoint.{
"data": {
"step": "bank_transfer_instrument",
"onboarding_id": 1,
"errors": [
{ "field": "iban", "message": "The IBAN could not be validated by the payment provider." }
]
},
"event": "ONBOARDING_PROCESSING_FAILED",
"message": "The IBAN could not be validated by the payment provider."
}message is the joined text of every entry in errors (semicolon-separated when there's more than one).REPORT_AVAILABLE{
"data": {
"id": 1,
"uuid": "98fb7eb8-64dc-4d37-a5f8-502fe25b0c4c",
"reference": "8916497364063763",
"currency": "NOK",
"amount": 632519,
"status": "Completed",
"creation_date": "2022-04-12",
"updated_at": "2022-04-13T15:15:07",
"created_at": "2022-04-13T15:15:07",
"account_id": 1,
"account_name": "Acme Merchant AS",
"processed_at": "2022-04-13T15:15:07",
"credited_amount": 1433181,
"rounding": 0,
"balance_transfer": 0,
"refund": 0,
"refund_cost": 0,
"chargeback": -757881,
"chargeback_cost": -23359,
"chargeback_reversed": 160,
"chargeback_reversed_cost": 5,
"second_chargeback": -89,
"second_chargeback_cost": -3,
"fees": -19495,
"platform_fee": 0,
"deposit_correction": 0,
"next_balance_transfer": 0,
"scheduled_at": null,
"batch": null,
"modification_reference": null,
"transactions_count": 6
},
"event": "REPORT_AVAILABLE",
"message": "Payout report is available."
}creation_date is a plain date (no time component) - different from every other timestamp field here, which are full date-times. batch and modification_reference are reserved legacy columns that are never populated by any current code path - they are always null. status is one of Pending, Processing, Completed, Failed, Returned. transactions_count appears only on this webhook payload, not on GET /v1/payouts or GET /v1/payouts/{payout_id}.