openapi: 3.1.0 info: version: '1' x-publicVersion: true title: Accounting notifications description: 'Adyen sends notifications through webhooks to inform your system about incoming and outgoing transfers in your platform. You can use these webhooks to build your implementation. For example, you can use this information to update balances in your own dashboards or to keep track of incoming funds.' x-timestamp: '2022-11-24T11:24:01Z' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team url: https://www.adyen.help/hc/en-us/community/topics email: developer-experience@adyen.com x-groups: - General tags: [] x-staticResponse: response.json webhooks: balancePlatform.transfer.created: post: tags: - General summary: Transfer created description: Adyen sends this webhook when there are fund movements on your platform. x-addedInVersion: '1' operationId: post-balancePlatform.transfer.created x-groupName: General x-sortIndex: 0 x-methodName: transferCreated security: - ApiKeyAuth: [] requestBody: content: application/json: examples: balancePlatform-transfer-created: $ref: '#/components/examples/post-balancePlatform.transfer.created-balancePlatform-transfer-created' schema: $ref: '#/components/schemas/TransferNotificationRequest' responses: '200': content: application/json: examples: balancePlatform-transfer-created: $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. balancePlatform.transfer.updated: post: tags: - General summary: Transfer updated description: "Adyen sends this webhook when the status of a transfer changes.\ \ Use the `data.id` to track the original transfer resource in the [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/accounting-webhooks/1/post/balancePlatform.transfer.created)\ \ webhook.\n\nThe `status` field indicates the event that triggered the webhook.\ \ \n\n" x-addedInVersion: '1' operationId: post-balancePlatform.transfer.updated x-groupName: General x-sortIndex: 0 x-methodName: transferUpdated security: - ApiKeyAuth: [] requestBody: content: application/json: examples: balancePlatform-transfer-updated: $ref: '#/components/examples/post-balancePlatform.transfer.updated-balancePlatform-transfer-updated' schema: $ref: '#/components/schemas/TransferNotificationRequest' responses: '200': content: application/json: examples: balancePlatform-transfer-updated: $ref: '#/components/examples/WebhookAck' schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. components: schemas: Address: properties: city: description: 'The name of the city. Maximum length: 3000 characters.' maxLength: 3000 type: string country: description: 'The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don''t know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.' type: string houseNumberOrName: description: 'The number or name of the house. Maximum length: 3000 characters.' maxLength: 3000 type: string postalCode: description: A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries. type: string stateOrProvince: description: 'The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.' type: string street: description: 'The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.' maxLength: 3000 type: string required: - street - houseNumberOrName - city - postalCode - country Amount: properties: currency: description: The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). maxLength: 3 minLength: 3 type: string value: description: The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes). format: int64 type: integer required: - value - currency BalancePlatformNotificationResponse: properties: notificationResponse: description: Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). type: string Bank: properties: priority: x-addedInVersion: '1' description: 'The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. If you don''t provide this in the request, Adyen sets the optimal priority. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html).' enum: - fast - instant - regular - wire type: string BankAccountInfo: properties: address: description: The address of the bank account owner. $ref: '#/components/schemas/Address' iban: description: The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard. type: string ownerName: description: The name of the bank account owner. $ref: '#/components/schemas/Name' Counterparty: properties: balanceAccountId: description: Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string bankAccount: description: Contains information about the bank account. $ref: '#/components/schemas/BankAccountInfo' merchant: description: Contains information about the merchant. $ref: '#/components/schemas/MerchantData' transferInstrumentId: description: Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id). type: string MerchantData: properties: mcc: description: The merchant category code. type: string merchantId: description: The merchant identifier. type: string nameLocation: description: Contains the merchant's name and location. $ref: '#/components/schemas/NameLocation' postalCode: description: The merchant postal code. type: string Name: properties: firstName: description: The first name. type: string fullName: description: The full name. type: string infix: description: The infix in the name, if any. type: string lastName: description: The last name. type: string NameLocation: properties: city: description: The city where the merchant is located. type: string country: description: The country where the merchant is located in [three-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format. type: string countryOfOrigin: description: The home country in [three-digit country code](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) format, used for government-controlled merchants such as embassies. type: string name: description: The name of the merchant's shop or service. type: string rawData: description: The raw data. type: string state: description: The state where the merchant is located. type: string Resource: properties: balancePlatform: description: Unique identifier of the balance platform. type: string creationDate: description: Date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**. format: date-time type: string id: description: The ID of the resource. type: string Transfer: properties: amount: x-addedInVersion: '1' description: The amount of the transfer. $ref: '#/components/schemas/Amount' balanceAccountId: description: Unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string bank: x-addedInVersion: '1' description: Contains settings for bank transfers. If you are transferring funds to bank accounts and you don't provide this object, Adyen applies default settings. $ref: '#/components/schemas/Bank' counterparty: description: The other party in the transfer. $ref: '#/components/schemas/Counterparty' description: x-addedInVersion: '1' description: A human-readable description for the transfer. You can use alphanumeric characters and hyphens. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. type: string id: description: The ID of the resource. type: string paymentInstrumentId: description: Unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id). type: string required: - amount - counterparty TransferNotificationRequest: properties: data: description: Contains details about the event. $ref: '#/components/schemas/Transfer' environment: description: 'The environment from which the webhook originated. Possible values: **test**, **live**.' type: string type: description: The type of the notification. enum: - balancePlatform.transfer.created - balancePlatform.transfer.updated type: string required: - environment - data securitySchemes: ApiKeyAuth: in: header name: X-API-Key type: apiKey BasicAuth: scheme: basic type: http examples: WebhookAck: summary: Acknowledge Webhook value: notificationResponse: '[accepted]' post-balancePlatform.transfer.created-balancePlatform-transfer-created: summary: Incoming transfer description: Example webhook for an incoming transfer value: data: accountHolder: description: AH description id: AH00000000000000000000001 reference: AH reference amount: currency: EUR value: 9999 balanceAccount: id: BA00000000000000000000001 balanceAccountId: BA00000000000000000000001 balancePlatform: YOUR_BALANCE_PLATFORM category: platformPayment creationDate: '2022-08-15T13:30:05+02:00' description: this_is_description direction: incoming events: - bookingDate: '2022-08-15T13:30:18+02:00' mutations: [] status: received id: 3JY1Y65VWIRGUETT modificationMerchantReference: modificationPspReference: '8026605630053940' paymentMerchantReference: Payment reference pspPaymentReference: CWBC43ZX2VTFWR82 reason: approved reference: this_is_reference sequenceNumber: 1 status: received type: capture environment: test type: balancePlatform.transfer.created post-balancePlatform.transfer.updated-balancePlatform-transfer-updated: summary: Incoming transfer status changed description: Example webhook when an incoming transfer's status changes value: data: accountHolder: description: AH description id: AH00000000000000000000001 reference: AH reference amount: currency: EUR value: 9999 balanceAccount: id: BA00000000000000000000001 balanceAccountId: BA00000000000000000000001 balancePlatform: YOUR_BALANCE_PLATFORM balances: - currency: EUR reserved: 9999 category: platformPayment creationDate: '2022-08-15T13:30:05+02:00' description: this_is_description direction: incoming events: - bookingDate: '2022-08-15T13:30:18+02:00' mutations: [] status: received - bookingDate: '2022-08-15T13:30:18+02:00' mutations: - currency: EUR reserved: 9999 status: authorised id: 3JY1Y65VWIRGUETT modificationMerchantReference: modificationPspReference: '8026605630053940' paymentMerchantReference: Payment reference pspPaymentReference: CWBC43ZX2VTFWR82 reason: approved reference: this_is_reference sequenceNumber: 2 status: authorised type: capture environment: test type: balancePlatform.incomingTransfer.updated