Last updated: 01 October 2025 | Change log
Authorize an EFT payment and initiate a settlement request with one call.
POST your request to the direct:sale action link.
POST https://try.access.worldpay.com/payments/alternative/direct/sale
{
    "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 | 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:
  | 
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. | 
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.
You receive:
You receive:
- an HTTP code 
201 - an 
"outcome": "refused" 
Note
In case of an error, you can get further information in our error reference.
Next steps