**Last updated**: 17 November 2025 | [**Change log**](/products/apms/changelog/) # Pay with EFT Authorize an EFT payment and initiate a settlement request with one call. ## Take a sale `POST` your request to the `direct:sale` action link. ### Sale example request `POST` `https://try.access.worldpay-bsh.securedataplatform.com/payments/alternative/direct/sale` #### EFT sale request body: { "transactionReference": "unique-transactionReference", "merchant": { "entity": "default" }, "instruction": { "narrative": { "line1": "trading name" }, "paymentInstrument": { "type": "bankAccountCA", "accountType": "checking|savings|corporate|corporateSavings", "accountNumber": "01234567890123456", "routingNumber": "01234567", "checkNumber": "012345678901234", "companyName": "for corporate accounts only", "billingAddress": { "firstName": "John", "lastName": "Johnson", "address1": "100 King Street W", "address2": "Suite 5350", "address3": "53rd Floor", "postalCode": "M5H 4C7", "city": "Toronto", "state": "ON", "countryCode": "CA" } }, "value": { "currency": "CAD", "amount": 250 } } } #### Parameter descriptions | Parameter | Required | Description | | --- | --- | --- | | `transactionReference` | ✅ | The unique transaction reference for this sale. Up to 15 characters, digits only. | | `merchant.entity` | ✅ | Used to route the sale request in Access Worldpay, created as part of on-boarding. | | `instruction` | ✅ | The object that contains all the payment information related to the sale request. | | `instruction.narrative.line1` | ✅ | This field is visible in the customer's bank statement. | | `instruction.paymentInstrument` | ✅ | An object that contains bank account details. | | `paymentInstrument.type` | ✅ | The type of payment instrument, must be "bankAccountCA" for EFT. | | `paymentInstrument.accountType` | ✅ | Possible values: checking, savings, corporate, corporateSavings. | | `paymentInstrument.accountNumber` | ✅ | Account number of direct debit account. | | `paymentInstrument.routingNumber` | ✅ | Routing number of direct debit account. | | `paymentInstrument.checkNumber` | ❌ | Check number of the direct debit account. | | `paymentInstrument.companyName` | ❌ | Company name if a corporate account. | | `paymentInstrument.billingAddress` | ❌ | An object containing the billing address information. **If included you must send** at least:`address1``city`[`countryCode`](/products/reference/supported-countries-currencies#iso-country-codes)`postalCode` | | `paymentInstrument.billingAddress.firstName` | ❌ | An identifier for the `firstName` being used. | | `paymentInstrument.billingAddress.lastName` | ❌ | An identifier for the `lastName` being used. | | `paymentInstrument.billingAddress.address1` | ❌ | An identifier for the `address1` being used. | | `paymentInstrument.billingAddress.address2` | ❌ | An identifier for the `address2` being used. | | `paymentInstrument.billingAddress.address3` | ❌ | An identifier for the `address3` being used. | | `paymentInstrument.billingAddress.postalCode` | ✅ | An identifier for the `postalCode` being used. | | `paymentInstrument.billingAddress.city` | ✅ | An identifier for the `city` being used. | | `paymentInstrument.billingAddress.state` | ❌ | An identifier for the `state` being used. | | `paymentInstrument.billingAddress.countryCode` | ✅ | An identifier for the `countryCode` being used. | | `instruction.value` | ✅ | An object that contains the value of the sale. | | `instruction.value.currency` | ✅ | An identifier for the `currency` being used. | | `instruction.value.amount` | ✅ | An identifier for the `amount` being used. | ### Sale response Best practice Access Worldpay returns a `WP-CorrelationId` in the headers of service responses. We highly recommend you log this. The `WP-CorrelationId` is used by us to examine individual service requests. #### Successful payment You receive: * an HTTP code `201` * an `"outcome": "sentForSettlement"` * links to [reverse](/products/apms/20230601/paydirect/manage-payment#reversal) or [query](/products/card-payments/v6/query-a-payment) your payment ### Refused payment You receive: * an HTTP code `201` * an `"outcome": "refused"` Authorized { "outcome": "sentForSettlement", "_links": { "direct:events": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/alternative/direct/events/linkData" }, "direct:reversal": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/alternative/direct/reversals/linkData" }, "curies": [{ "name": "direct", "href": "https://try.access.worldpay-bsh.securedataplatform.com/rels/payments/alternative/direct/{rels}", "templated": true }] } } Refused { "outcome": "refused", "_links": { "direct:events": { "href": "https://try.access.worldpay-bsh.securedataplatform.com/payments/alternative/direct/events/{linkData}" }, "curies": [{ "name": "direct", "href": "https://try.access.worldpay-bsh.securedataplatform.com/rels/payments/alternative/direct/{rel}", "templated": true }] } } Note In case of an error, you can get further information in our [error reference](/products/reference/worldpay-error-responses). **Next steps** [Manage your payment](/products/apms/20230601/paydirect/manage-payment)